私はPlayフレームワーク2.0を使用しています。 私は "play dist"を使ってスタンドアローンアプリを作成しています。Nginxのスタンドアロンアプリケーションでは、Playフレームワーク2.0でのルーティングが機能しません
また、Nginxをフロントエンドとして使用しています。 だから、私はnginxの設定ファイルを持っている:私は
sh start -Dhttp.address=127.0.0.1 -Dhttp.port=9000
か、単に
sh start
ようなアプリケーションを起動すると
GET/controllers.Application.index()
GET /projects controllers.Application.projects()
:
location /terra {
proxy_pass http://127.0.0.1:9000;
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;
}
マイルーティングファイルは次のようになりますに行くは、私が手:リクエストが見つかり アクションではない「GET /テラ」私はGET/controllers.Application.index()
GET /terra controllers.Application.index()
に変更した場合は
- それはあまりにも動作しません。
また、ローカルでアプリケーションを実行して「localhost:9000/WRONG_ROUTING_NAME」に行ったときも同じエラーが表示されますが、「これらのルートはこの順序で試行されました」と表示されます。アプリがデプロイされた後も同じリストが表示されません。
私はcurl myhost.com:9000
を使用する場合は、私が得る:curl: (52) Empty reply from server
- Azeeは12秒前
少し実験しました。 アプリケーションを実行するには、残骸の構造が残っていなければなりません。 例:projectName /というディレクトリがあり、プロジェクトが含まれています。 "play dist"を実行すると、projectName/dist/artifactName.zipファイルが作成されます。 このファイルをリモートホストの同じディレクトリに展開する必要があります。 projectName/artifactName/ 次に、projectNameディレクトリから "sh start"を実行できます。 – Azee
問題は、jdk7でローカルにアプリケーションを作成し、リモートサーバーにJava 1.6があるということでした... – Azee
これを機能させるために管理できましたか?あなたはこの質問の唯一の貢献者であり、完全な答えは非常に貴重です。これを数日間検索すると、distを実行するためにEC2サーバーにPlayをインストールする必要があると信じていますが、その前に私はどのように動作しているのかを見たいと思います。 – Simon