Развертывание двух разных Play! приложения на одно имя хоста - PullRequest
6 голосов
/ 11 января 2011

Я разработал 2 приложения с Play Framework, которые обращаются к разной информации, поэтому объединять их в одно приложение не имеет смысла.

Теперь мне нужно развернуть оба приложения под одним именем хоста, каждое из которыхв отдельной подпапке (URI), например: example.com/payment/ example.com/cms/

И у меня проблемы с маршрутами.Я настроил веб-сервер nginx для работы в качестве обратного прокси.Он доставляет первую страницу, как и ожидалось.

Но как только я нажимаю на что-либо, вместо перехода к / cms / Application / index он ссылается на / Application / index (без /cms/).

ИМХО, мне кажется, мне нужно изменить файл маршрутов, жестко закодировав / cms / на всех путях, но это кажется плохим подходом, потому что если мне нужно развернуть приложение на другом URI, мне нужно будет снова изменить маршруты.наилучший способ развернуть два приложения на одном имени хоста?

----- nginx.conf -----
...
...
...

    location /cms {
      proxy_pass      http://localhost:9001/;

      proxy_redirect          off;
      proxy_set_header        Host            $host;
      proxy_set_header        X-Real-IP       $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /payment {
      proxy_pass      http://localhost:9002/;

      proxy_redirect          off;
      proxy_set_header        Host            $host;
      proxy_set_header        X-Real-IP       $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    }

...
...
...
----- nginx.conf -----

1 Ответ

4 голосов
/ 11 января 2011

Если вы посмотрите на эту ветку в группах Google, вы увидите, что предпочтительнее использовать контекстный путь.

Рекомендуется использовать задание начальной загрузкиустановить контекст для приложения следующим образом

Play.ctxPath="/project1";
Router.detectChanges(Play.ctxPath);

Таким образом, ваш код будет

Play.ctxPath="/cms";
Router.detectChanges(Play.ctxPath);

и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...