3 Replies Latest reply on Dec 17, 2014 12:08 AM by linux_yuji

    WildFlyでHTTPセッションは維持できないのでしょうか。

    linux_yuji

      はじめまして。現在、NGINX+WildFlyを使って複数サーバーでHTTPセッションを維持させることができず悩んでいます。

      WildFlyのstandalon-ha.xmlで起動しても、WildFlyでHTTPのセッションが維持できません。

      何が原因と考えられますでしょうか。ご教授お願いします。

       

      <WildFlyの起動方法>

      ● WildFly#1(CLDWEBHV01)

       /opt/wildfly/bin/standalone.sh -c standalone-ha.xml -b 192.168.148.32

      ●WildFly#2(CLDWEBHV02)

       /opt/wildfly/bin/standalone.sh -c standalone-ha.xml -b 192.168.148.33

      ●上記起動後に出力されたログ

       (Incoming-1,shared=udp) ISPN000094: Received new cluster view: [cldwebhv01/ejb|1] (2) [cldwebhv01/ejb, cldwebhv02/ejb]

       

      <動作の状況>

      1. http://192.168.148.32:8080/アプリケーションにアクセスしログイン

          http://192.168.148.32:8080/アプリケーション/●●.xhtml?jfwid=23-ZffKoAyz4KiqzRhf_IttW:0

      2. 上記ログイン後のURLの192.168.148.32(WildFly#1)を192.168.148.33(WildFly#2)に変更してアクセス

        ここで、192.168.148.32でもログイン後のセッションが維持されてほしいところが、ログイン前ページが表示

        • 1. Re: WildFlyでHTTPセッションは維持できないのでしょうか。
          emag

          以下を見るに、アプリケーション中の web.xml に <distributable/> 要素がないために HTTP セッションレプリケーションが有効になっておらず、セッション維持ができていないように思われます。

          (Incoming-1,shared=udp) ISPN000094: Received new cluster view: [cldwebhv01/ejb|1] (2) [cldwebhv01/ejb, cldwebhv02/ejb]

          <distributable> 要素を追加し HTTP セッションレプリケーションが有効になると、ログに [cldwebhv01/web|1] (2) [cldwebhv01/web, cldwebhv02/web] などと出力されます。

          • 2. Re: WildFlyでHTTPセッションは維持できないのでしょうか。
            linux_yuji

            色々とアドバイス有難うございました。早速確認しました。

            web.xmlに<distributable/>を追加し、以上状態になることが確認とれました。

            ISPN000094: Received new cluster view: [cldwebhv01/web|1] (2) [cldwebhv01/web, cldwebhv02/web]


            また、curlを使って以下同じセッションで動作することが確認とれました。

            WildFly#1上のアプリにアクセスした時のセッション情報

            < Set-Cookie: K_SESSION=IzQTE7TsYzfw2iVAOANmSt_1.cldwebhv01; path=/kokoro; HttpOnly

            WildFly#1で生成されたセッション情報をもとにWildFly#2上のアプリにアクセスした時のセッション情報

            < Set-Cookie: K_SESSION=IzQTE7TsYzfw2iVAOANmSt_1.cldwebhv02; path=/kokoro; HttpOnly


            ※jfwidについては、追って報告させていただきます。

            本件、結構悩んでいましたので、本当に感謝します。

            • 3. Re: WildFlyでHTTPセッションは維持できないのでしょうか。
              linux_yuji

              質問ばかりで申し訳ありませんが、以下ご存知したらご教授お願いできますでしょうか。


              皆さんのご教授のおかげで、WildFlyサーバー(1号機と2号機)間でセッションレプリケーションする環境がようやく構築できました。しかし、WildFlyサーバー1号機のアプリケーションにログインしたセッションが、2号機では維持されずログイン前のページに戻ってしまう状況はそれでも解消できませんでした。


              プログラム側の認証はフォーム認証を使用しておりますが、プログラム側でセッションレプリケーションをするために何かタグなどの情報を組み入れないといけないものなのでしょうか。

              それとも、プログラム側での対応は不要で、現状の構成でうまくいくはずなのでしょうか。