我设置了 apachehttp
反向代理和负载平衡。
我已经知道反向代理会破坏NTLM
对话,并导致类似针对 Active Directory 的基本身份验证,这对我来说已经足够了。
NTLM
在我的 JBoss 上受 jCIFS 支持,并且在以下情况下运行良好:
- 我直接使用我的 JBoss 地址(
10.1.2.12:8080/myapp
) - 我使用我的 Apache RP 地址(
myapp-homintranet.myorg.com/myapp
)没有第二名成员
但是自从添加第二个成员进行负载平衡后,它根本不起作用!
<VirtualHost *:80>
ServerName myapp-homintranet.myorg.com
ServerAlias myapp-homintranet
ProxyRequests Off
ProxyPass /myapp balancer://jbosscluster/myapp stickysession=JSESSIONID nofailover=On
ProxyPassReverse /myapp http://server01.myorg.com:8080/myapp
#Conf load-balancing Jboss
<Proxy balancer://jbosscluster>
BalancerMember http://server01.myorg.com:8080
BalancerMember http://server02.myorg.com:8080
ProxySet lbmethod=byrequests
</Proxy>
</VirtualHost>
如果我删除第二个成员(服务器 02),它就会再次工作。
我不知道如何解决这个问题。有人能帮助我吗?
PS:如果有办法突出显示apache/conf
语法,请告诉我!
我的工人conf
,万一……
# Define list of workers that will be used
# for mapping requests
worker.list=loadbalancer,status
# Define Node1 = server01
# modify the host as your host IP or DNS name.
worker.node1.port=8009
worker.node1.host=10.1.2.11
worker.node1.type=ajp13
worker.node1.lbfactor=1
#worker.node1.cachesize=10
# Define Node2 = server02
# modify the host as your host IP or DNS name.
worker.node2.port=8009
worker.node2.host=10.1.2.12
worker.node2.type=ajp13
worker.node2.lbfactor=1
#worker.node1.cachesize=10
# Load-balancing behaviour
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=SERVER1_node1,SERVER2_node1
worker.loadbalancer.sticky_session=1
# Status worker for managing load balancer
worker.status.type=status
答案1
我没有找到任何真正解决这个问题的方法。我们只是改变了我们的身份验证方法(使用 Kerberos 和mod_auth_kerb
,配置起来很麻烦)。
我认为虚拟领域和 Windows 领域之间存在问题IP
。我们在使用 Kerberos 时也遇到了这个问题。但我们没有再测试过。
我希望这对某人有帮助。