別のポートで実行されるnginxサーバーを介して1つのポートで実行されるJavaアプリケーションを提供する

別のポートで実行されるnginxサーバーを介して1つのポートで実行されるJavaアプリケーションを提供する

nginxHTTPS(443)を介して実行されるPHPがあります。また、HTTPSポート8443を介して実行されるJavaアプリケーションもあります。

HTTPS(443)を介してJavaアプリケーションを公開する方法はありますか?たぶんproxy_pass何かを使うか(参照ここ例えば)?

私の目標は、ユーザーが単一のポートを介して両方のアプリケーションを使用できるようにすることです。

  • https://server/ - 標準ウェブページ
  • https://server/java - Javaアプリケーションにリダイレクト

ベストアンサー1

これは実際に「インターネットで」広く報告されています。 「リバースプロキシ」と「サーバーブロック」を見てください。

問題は、単一のIPアドレスがポートでリッスンするプロセスを1つだけ持つことができることです。誰でもnginxまたはあなたのJavaアプリケーション。

これで、特定のHTTP要求に応答するようにnginxを設定できます。フィールド(IPアドレスではなく「yourhost.com」などのネームサービスエントリ)他のアドレスとは異なります。その後、2つの「仮想」ドメインを持つことができます。

java.serverとサーバー、クライアントが接続されているサーバーによっては、nginxはリクエスト自体を処理するか(PHPが実行されるようにする)、リバースプロキシとして機能します(proxy_pass唯一の方法ではありません)。

通常、この点に注意してください。〜しなければならないTLSの解凍(そうでない場合、nginxは要求されたドメインが不明)とHTTPコンテンツの再パッケージ化が含まれます。つまり、JavaアプリケーションのTLS証明書がクライアントに到達しません。一般的には問題ありませんが、クライアントがJavaアプリケーションで信頼を確立する必要がある場合は、選択肢はありません。

内部ネットワークの場合は、別のIPアドレスを取得してください。内部IPアドレスには料金はかかりません。これが外部サービスの場合はIPv6に移動できるかどうかを検討してください(通常はIPアドレスブロック全体を一度に取得し、各サービスが独自のアドレスを持つ可能性があるため、この問題はありません)。別のIPv4アドレスにあります。

おすすめ記事