0

私は、stageSBT 内で実行してデプロイした Play アプリケーションを持っており、次に を使用してコマンドラインから実行しtarget/startます。その前に Nginx を配置し、サブドメインに基づいて、serverポート 80 用とポート 443 用の 2 つのブロックがあります。ポート 80 ブロックは、httpsポート 443 のスキームにリダイレクトするだけです。すべてうまくいきます。

要点をまとめると:

  • http://play.mydomain.com/にリダイレクトします
  • https://play.mydomain.com/これはのプロキシですhttp://localhost:9000

しかし、単に にhttp://mydomain.com:9000/アクセスすると、Play アプリケーションに直接アクセスできます。SSL はありません。また、誰かが SSL にアクセスできないようにする方法もありません。

私は何をすべきか?Nginx を使用してポート 9000 へのアクセスを SSL バージョンの URL にリダイレクトする必要がありますか? ポート 9000 をファイアウォールで保護し、そのポートでのローカル リクエストのみを許可する必要がありますか? (もしそうなら、どうすればいいですか?) 私が考えていない、これに対処する他の方法はありますか?

そして、サーブレット 3.1 仕様がリリースされて、すべてを WAR としてデプロイできるようになるまで、どのくらいかかりますか? :-)

4

1 に答える 1

1

Play アプリケーションをローカル インターフェイス (たとえば、127.0.0.1) でのみリッスンすることができます。そうすれば、nginx は引き続きリクエストをプロキシできますが、外部からの誰もアプリケーションに直接アクセスすることはできません。追加のファイアウォール設定は必要ありません。

に追加の引数を渡すことができるように見えますstart:

$ start -Dhttp.port=9000 -Dhttp.address=127.0.0.1

于 2013-08-27T01:12:01.513 に答える