仅当负载平衡时,NTLM基本身份validation才会在http apache后面失败

我build立了一个Apache的http反向代理和负载均衡

我已经知道Reverse Proxying会打破NTLM对话框,并导致类似于Active Directory的基本身份validation,这对我来说已经足够了。

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 

我没有find任何真正的解决这个问题。 我们只是改变了我们的身份validation方法(使用Kerberos和mod_auth_kerb ,这是很痛苦的configuration)。

我认为在虚拟IP和Windows领域之间存在一个问题。 我们也遇到了Kerberos的这个问题。 但是我们还没有再testing一下。

我希望这会帮助别人。