我有两个运行Jboss 7的App Server和一个Web服务器
我已使用mod_jk模块配置了负载均衡
以下是我的workers.properties
worker.list=loadbalancer,status,node1,node2
worker.node1.port=8009
worker.node1.host=ip1
worker.node1.type=ajp13
worker.node1.lbfactor=1
worker.node2.port=8009
worker.node2.host= ip2
worker.node2.type=ajp13
worker.node2.lbfactor=1
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node1,node2
worker.loadbalancer.sticky_session=0
worker.list=loadbalancer
worker.status.type=status
以下是我的uriworkermap.properties
/jmx-console=loadbalancer
/jmx-console/*=loadbalancer
/web-console=loadbalancer
/web-console/*=loadbalancer
/App/*=loadbalancer
我在httpd.conf文件中输入的条目
<Proxy balancer://App>
BalancerMember ajp://xx.xx.xx.1:8009/App route=node1
BalancerMember ajp://xx.xx.xx.2:8009/App route=node2
ProxySet stickysession=JSESSIONID
</Proxy>
ProxyPass /App balancer://App
ProxyPassReverse /App balancer://App
<Location /balancer-manager>
SetHandler balancer-manager
</Location>
以下是mod-jk.conf文件
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /App/* loadbalancer
JkMountFile conf/uriworkermap.properties
JkShmFile logs/jk.shm
<Location /jkstatus>
JkMount status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
会话中有一些问题,我不明白该怎么做。
无论何时启动apache httpd并点击Web Server URL,应用程序登录页面都会正确打开,并在应用服务器上进行适当的负载平衡。
场景1:当我点击http://xx.xx.xx.xx/App/时,它会转到App Server 1.但是当我输入用户名/密码并登录按钮时,它会转到app server 2而不是转到app server 1。
答案 0 :(得分:0)
如果您使用的是独立的JBoss服务器,请为standalone.xml中的每个实例添加如下的instance-id,会话亲缘关系将开始工作。
对于node1,
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" instance-id="node1" native="false">
对于node2,
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" instance-id="node2" native="false">
以下是一些可能对您有帮助的链接(包括standalone.xml和server.xml),