2つのjboss7サーバーにリクエストをルーティングするためにmod_proxy_balancerを設定しようとしています。とりあえず、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セッションが正しく構築されていません。その結果、認証は機能していません。
面白いことに、1つの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">
.。
これを試してみてください:それは私のために働きましたバックエンドサーバーが適切なセッションCookieを設定していなくても、mod_headersを使用してスティッキネスで負荷分散を提供する方法の別の例:
ヘッダー追加Set-Cookie "ROUTEID =。%{BALANCER_WORKER_ROUTE} e; path = /" env = BALANCER_ROUTE_CHANGED BalancerMember " http://192.168.1.50:8 " route = 1 BalancerMember " http://192.168.1.51:8 "route = 2 ProxySet stickysession = ROUTEID ProxyPass"/test "" balancer:// mycluster "ProxyPassReverse"/test "" balancer:// mycluster "
詳細については、以下のhttpdドキュメントを参照してください: https://httpd.Apache.org/docs/2.4/mod/mod_proxy_balancer.html
上記の設定はスタンドアロンインスタンスで機能しますが、ドメイン構成の場合は、サーバーセクションの下のHost.xmlに「jvmRoute」を追加する必要があります。
<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を使用してノード間の負荷分散を行っている場合は、Webサーバーで、上記で構成した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