Tomcatのドキュメントを理解するのは難しく、server.xmlを見ると、ドキュメントで適切に、または広範に説明されていないため、理解しにくいポートのサラダが見つかります。
たとえば、構成ファイルのこの行はserver.xml
<Connector port="8345" protocol="AJP/1.3" redirectPort="9875" />
そして、ここでさらに別のリダイレクトポートを見つけることができます:
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
コネクタポートの機能を理解しました。最初のケースでは、それを使用してApacheでワーカーを作成し、そこに送信します。2番目のケースでは、Tomcatに直接アクセスするためのポートを開きます。ただし、リダイレクトポートに関しては、あいまいになります。
Tomcatのドキュメントによるajpポートの説明は次のとおりです。
このコネクターが非SSL要求をサポートしていて、マッチングにSSLトランスポートが必要な要求を受信した場合、Catalinaはここで指定されたポート番号に要求を自動的にリダイレクトします。
私は常に1024を超えるランダムなリダイレクトポートを選択し、それが機能します。
しかし、これはいつ実用化されるのでしょうか?リクエストにSSLトランスポートが必要な場合、どのようにしてわかりますか?
Tomcatモジュールを実行しているサテライトサーバーがあります。このモジュールは、Apacheを使用してメインサーバーからajpコネクタにトラフィックをリダイレクトしたり、その逆を行ったりすることで有効になります。
メインサーバーでは、Apacheでhttpsが適用されます。これは、すべての要求がサテライトサーバーに暗号化またはプレーンテキストで送信されることを意味しますか?ポート8080を介してサテライトサーバーにアクセスする場合、暗号化されないことは知っていますが、これがメインサーバーにリダイレクトされるトラフィックにも当てはまるのか、このリダイレクトポートはどこで有効になるのでしょうか。
ドキュメントで定義されているように、SSLリクエストがサーバーに送信されるとリダイレクトポートが機能し、httpコネクタポートはSSLリクエストを処理できないため、定義されたポートにリダイレクトします。ただし、それらはserver.xmlファイルで定義された別のセクションである必要があります。このセクションでは、定義されたリダイレクトポートが、SSL要求を処理するためのコネクタポートとして機能します。たとえば、httpリクエストをポート80で処理し、httpsリクエストをポート443で処理する場合、server.xmlは次のようになります。
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />
<Connector port="443" protocol="org.Apache.coyote.http11.Http11Protocol" SSLEnabled="true" scheme="https" secure="true" sslProtocol="TLS" keystoreFile="/path/to/kestorefile" keystorePass="my_keystore_password"/>
Keystorefileは、Webサイトのssl証明書です。
リダイレクトポートをコネクタポートとして他のセクションを構成しない場合、リクエストはそのポートにリダイレクトされません。たとえば、Webサイトがsslリクエストをサポートしておらず、そのWebサイトにhttpsリクエストを送信しようとすると、ブラウザにSecure Connection Failedのようなエラーが表示されます。