2011-01-10 30 views
6

Play Frameworkで2つのアプリケーションを開発していて、異なる情報にアクセスしているため、1つのアプリケーションとしてマージするのは意味がありません。2つの異なるPlay!同じホスト名のアプリケーション

今私は、たとえば、同じホスト名の両方のアプリを、別々のサブフォルダ(URI)の各1を展開する必要があります。 example.com/payment/ example.com/cms/

そして、私はルートに問題があります。私は逆プロキシとして動作するようにnginxウェブサーバを設定しました。期待どおりに最初のページを配信します。

しかし、何かをクリックすると、/ cms/Application/indexに行くのではなく、/ Application/index(/ cms /なし)にリンクします。

IMHOすべてのパスでハードコーディング/ cms /を変更する必要があると思いますが、別のURIにAPPを展開する必要がある場合は、ルートを再度変更する必要があります。

同じホスト名に2つのアプリケーションを展開する最も良い方法は何ですか?

----- 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 ----- 

答えて

4

Googleグループにthis threadを見てみる場合は、好ましいアプローチは、コンテキストパスにあることがわかります。

勧告は、だからあなたのコードが

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

など

になり、次のよう

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

でアプリケーションごとにコンテキストを設定するには、ブートストラップの仕事を使用することです

関連する問題