ロード バランサーを介して開始され、最も重みの少ない Tomcat サーバーにルーティングされて処理されるクライアント リクエストがあります。
クライアントがターゲットの Tomcat サーバーにヒットすると、クライアントへの応答には、2 番目の要求に使用される絶対 URL が含まれます。これにより、ロード バランサーが実質的に排除され、クライアント セッションの存続期間中、クライアントが Tomcat インスタンスと直接通信できるようになります。
問題: 問題は、ロード バランサを介した最初のリクエストが SESSION を作成し、次に Tomcat への 2 番目のリクエストが 1 つのクライアントに対して 2 番目の SESSION を直接作成することです。最初の SESSION は未使用であり、最終的に期限切れになります。
質問: 2 番目のリクエストでクライアントを接続し、最初のリクエストで作成された SESSION に (ロード バランサーを介して) 戻すにはどうすればよいですか?
更新: JMeter でこれをテストしましたが、セッションを接続できませんでした。
リクエスト 1:
http://loadbalancer:80/page1.jsp
応答ヘッダー:
Set-Cookie: JSESSIONID=070894D435A46DF60AFE506018018325; Path=/
次に、2 番目の要求は次のとおりです。
http://directTomcat:8080/page2.jsp?token1=123&token2=xyz;JSESSIONID=070894D435A46DF60AFE506018018325
[no cookies]
2 番目の応答ヘッダー:
Set-Cookie: JSESSIONID=1081A016CBA9B3AA7E7C38EF775C04F7; Path=/
私も試しました:
http://directTomcat:8080/page2.jsp?token1=123&token2=xyz&JSESSIONID=070894D435A46DF60AFE506018018325
しかし、それもうまくいきませんでした。
2 番目の要求を行う前に、クライアントで JSESSIONID を Cookie として設定する必要がありますか?