F 5負荷等化2台WASリダイレクト後のポートをWASポートに変更する解決策

1768 ワード

F 5アドレス:172.10.10.10:8081
WASアドレス:
A:192.168.1.13:9080
B:192.168.1.14:9080
説明:F 5アドレスの8081ポートは本来、負荷等化AとBの2台のホストの80ポートであるが、WASはrootユーザがインストールしていないため、1024以下のポートは使用できないため、アプリケーションのデフォルトポート9080を使用する.外部がF 5アドレスの8081ポートにアクセスすると、F 5は要求を構成に従ってAとBのうちの1台の処理に転送する.
異常現象:WASのアプリケーションがリダイレクトを使用する場合、例えば、ユーザーがログインページにリダイレクトしていない場合、所望のURLは:http://172.10.10.10:8081/login.jspあ、実際のURLは:http://172.10.10.10:9080/login.jspまた、リダイレクトされていないページにアクセスすると、404でリソースが見つからないことがよくあります.
F 5,A,Bのログを解析することにより,リダイレクト時にWASがデフォルトのアプリケーションポートを持って帰ってきたこと,F 5アドレスがWASポート付きリダイレクトのURLに基づいて要求された場合を発見した.
WAS公式文書を参照:https://www.ibm.com/support/knowledgecenter/zh/SSAW57_8.5.5/com.ibm.websphere.nd.doc/ae/rweb_custom_props.html?cp=SSAW57_8.5.5

com.ibm.ws.webcontainer.义齿
getServerPortメソッドは、チャネルのgetVirtualPortメソッドに依存します.このメソッドは、ポート番号を次の順序で返します.
要求URLからポート番号を返す.
要求ホストヘッダからポート番号を返す
この順序はHTTP/1.1 RFCに適合するが、Javaサーブレット仕様V 2に適合しない.4 API.このAPIでは、ホストヘッダからポート番号(存在する場合)を返すか、要求URLからポート番号を返す必要があります.上記の例では、正しいURLを返します.http://ProxyServer:8888.Webコンテナを変更して、ホストヘッダからポート番号(存在する場合)を返すか、クライアント接続を受け入れたURLポートを返します.trusthostheaderportとcomをibm.ws.webcontainer.extractHostHeaderPortカスタムプロパティはtrueに設定され、リクエストホストヘッダからポート番号が返されます.
管理コンソールを使用して、次のようにプロパティを設定します.
trusthostheaderport = true     
com.ibm.ws.webcontainer.extractHostHeaderPort = true

上記の説明に従って、
trusthostheaderport = true     
com.ibm.ws.webcontainer.extractHostHeaderPort = true
以降、異常は相変わらずで、よく発生します.
SRVE 0255 E:XXXXを処理するWebグループ/仮想ホストは定義されていません.
解決策:
1:AとBのWASに適用されるポートを8081に変更
2:F 5にマッピングされたWASポートも8081に変更
AとBのポートをF 5アドレスのポートと一致するように変更したら、問題解決!com.ibm.ws.webcontainer.extractHostHeaderPort=true trusthostheaderport=trueも設定されていません.