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

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

我设置了 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 时也遇到了这个问题。但我们没有再测试过。

我希望这对某人有帮助。

相关内容