web-dev-qa-db-ja.com

mod_proxy_balancerを使用したJBoss7負荷分散-セッションが機能しない

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インスタンスをオフにするとすべてが機能します。

私はすでにいくつかの設定を試したので、それ以上の提案に感謝しています。

3
Phil P.

私はついに設定を機能させました。

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">

.。

2
Phil P.

これを試してみてください:それは私のために働きましたバックエンドサーバーが適切なセッション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

0
user530365

上記の設定はスタンドアロンインスタンスで機能しますが、ドメイン構成の場合は、サーバーセクションの下の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
0
Gayam