連携させるために、フロントエンドで NGINX を構成し、バックエンドで Tomcat を構成しようとしています。
Tomcat server.xml を 2 つのコネクタで構成しました。
<Connector port="8443" protocol="HTTP/1.1" scheme="https" secure="true" proxyPort="443" proxyName="www.myhost.com" connectionTimeout="20000" URIEncoding="UTF-8" />
<Connector port="8080" protocol="HTTP/1.1" scheme="http" proxyPort="80" proxyName="www.myhost.com" connectionTimeout="20000" URIEncoding="UTF-8" />
私の NGINX サーバーは、ユーザーがhttp://www.myhost.comおよびhttps://www.myhost.com で私の Web サイトを呼び出すと、リクエストを受け取ります。各呼び出し (キャッシュを除く...) で、NGINX は、元の要求のスキーム (http または https) に応じて、8080 ポートまたは 8443 で Tomcat サーバーに要求を送信します。
正常に動作しますが、Tomcat は私の webapp に間違った情報を提供しているようです (実際、私の webapp は Liferay です)。間違ったサーバーホストを提供します。
たとえば、http ://www.myhost.com でサーバーを呼び出すと、NGINX は8080ポートで Tomcat を呼び出しますが、Liferay は不適切なサーバー ホスト (http* s *://www.myhost.com ) でリクエストを受信するようです。 /)。Liferay は、このサーバー ホストを使用してリンクを構築します。実際、Liferay が構築しているすべてのリンクは、次のパターンに一致します: http* s *://www.myhost.com/....
私によると、私の構成では、次のように動作するはずです:
- Tomcat は 8080 ポートでリクエストを受信します。
- Tomcat は、私の呼び出しがhttp://www.myhost.comにあったという事実を理解しています。
- Tomcat がポート (8080) でメッセージを受信したため、Tomcat は Liferay Web アプリケーションに proxyHost (www.myhost.com) と proxyPort (80) を提供する必要があります (Liferay は request.getServerPort() と request.getServerHost() を使用してこれらの情報を取得する必要があります) Tomcat構成)
- Liferay は、これらの情報を考慮してリンク URL (メニュー...) を作成する必要があります。
これが私の問題です。Liferay は間違った設定を取得します: https スキームのものです。
この投稿を使用して、ubuntu 12.04 に NGINX Install nginx を構成し、それを Tomcat に接続しました。この投稿では、https でこれを行う方法については説明していません。私の文脈では、http と https に対して 2 回書きました。
誰かがすでにこの問題を解決しましたか?