6

ゴール

アプリケーションごとに異なるサブディレクトリを使用して、nginx で複数の Play 2.1 アプリケーションをセットアップします。

で実行されている App1127.0.0.1:4000は、以下でアクセスできる必要があります。127.0.0.1/dev
127.0.0.1:5000127.0.0.1/test

構成

nginx.conf

worker_processes  1;

error_log  logs/error.log;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    upstream app1 {
        server 127.0.0.1:4000;
    }

    upstream app2 {
        server 127.0.0.1:5000;
    }

    server {
        listen       80;
        server_name  localhost;

        location /dev {
            rewrite /(.*) /$1 break;
            proxy_pass http://app1;
        }

        location /test {
            rewrite /(.*) /$1 break;
            proxy_pass http://app2;
        }        
    }
}

App1 - application.conf

application.context=/dev

App2 - application.conf

application.context=/test

問題

この構成では、両方のアプリケーションにアクセスできますが、html コードのみが読み込まれます。すべての静的ファイル (css、js、画像) は読み込まれません。

これはキャッシングの問題だと思います。運が悪かったので、さまざまなnginxパラメーターを試しました。初めてサイトをリクエストした場合、ブラウザは (cssおよびjsファイルなどに対して127.0.0.1/dev/assets/stylesheets/main.css) ステータスを返します200が、コンテンツは返しません - Content-Length: 0. 次回は で応答しますが304、まだコンテンツはありません。

これが構成の問題なのnginxかどうかはわかりません。Play 2.1

どんな助けにも感謝します。

4

2 に答える 2

1

サブフォルダーに依存する代わりに、同様にローカルドメインを使用します。うまくいくはずですが、うまくいかないと不平を言う投稿をたくさん見ました...http://test.loc/http://dev.locapplication.context

さらに、ローカル ドメインを使用することは、最終的な運用環境に似ているため、URL に依存するものを簡単にデバッグできます。クッキー。

于 2013-04-05T16:43:16.150 に答える
0

これはあなたの質問に直接答えるものではありませんが、パラメーターを渡すことでHAProxyで機能するようになりました。X-Script-Name

frontend  public
  bind *:80
  use_backend playapp if { path_beg /playapp }

backend playapp
  acl is-ssl  dst_port 443
  reqadd X-Script-Name:\ /playapp
  reqadd X-Scheme:\ https  if is-ssl
  option forwardfor
  server playapp1 127.0.0.1:9000 check
于 2014-09-06T18:53:35.177 に答える