Mod-Proxy
使用 mod_proxy_balancer 進行 JBoss7 負載平衡 - 會話不工作
我正在嘗試設置 mod_proxy_balancer 以將請求路由到 2 個 jboss7 伺服器。目前我正在我的本地機器上測試這個設置,在 httpd.conf 中使用以下配置:
ProxyRequests Off <Proxy \*> Order deny,allow Deny from all </Proxy> ProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid scolonpathdelim=On <Proxy balancer://mycluster> BalancerMember http://localhost:8080 route=node1 BalancerMember http://localhost:8081 route=node2 Order allow,deny Allow from all </Proxy>
在每個 jboss 的standalone.xml 文件中,我定義了 jvmRoute 系統屬性:
<system-properties> <property name="jvmRoute" value="node1"/> </system-properties>
在 http://localhost/myapp 應用程序是可訪問的,但 java-session 沒有正確建立。因此,身份驗證不起作用。
有趣的是,如果我關閉一個 JBoss 實例,一切都會正常工作。
由於我已經嘗試了一些設置,因此我感謝您提供任何進一步的建議。
我終於讓配置工作了。
我必須在 JBoss7 配置(standalone.xml)中添加以下設置:
<system-properties> <property name="jvmRoute" value="node1"/> <property name="UseJK" value="true"/> </system-properties>
和:
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" **instance-id="node1" native="false">
…
以上設置適用於獨立實例,但對於域配置,您需要將“jvmRoute”添加到伺服器部分下的 host.xml
<server name="server-one" group="server-one-group" auto-start="true"> <system-properties> <property name="jvmRoute" value="server1" boot-time="true"/> </system-properties> </server>
對所有節點重複相同的操作
<server name="server-one" group="server-one-group" auto-start="true"> <system-properties> <property name="jvmRoute" value="server2" boot-time="true"/> </system-properties> </server>
如果您使用 mod_jk 在節點之間進行負載平衡,那麼在網路伺服器上,您需要使用上面配置的 jvmRoute 定義節點,如下所示:worker.properties 文件包含:
worker.list=oblb worker.oblb.type=lb worker.oblb.balance_workers=server1,server2 worker.oblb.sticky_session=true worker.server1.reference=worker.template worker.server1.host=Appserverhost1.example.com worker.server1.port=8009 worker.server2.reference=worker.template worker.server2.host=Appserverhost2.example.com worker.server2.port=8009 worker.template.type=ajp13