Apache 代理平衡器无法正常工作

Apache 代理平衡器无法正常工作

我的 Linux 服务器上有两个 wildfly 服务器实例,我想使用 apache 代理平衡器来平衡这两个服务器的负载。但平衡器无法正常工作,它会以循环方式将请求一个接一个地发送到 wildfly 服务器,但没有一个正常工作。在我的网站上,我可以看到登录页面,但添加登录凭据后,它不会重定向到主页,在日志中我可以看到它已正确登录。如果我停止一台服务器,那么一切都会正常工作

这是我的代理配置

 ProxyRequests Off

ProxyPreserveHost On
ProxyVia On

 <Proxy balancer://mycluster>
                # WebHead
                BalancerMember http://x.y.z.z:8080
                # WebHead2
                BalancerMember http://x.y.z.z:8280 


        </Proxy>

ProxyPass /test balancer://mycluster/test 
ProxyPassReverse /test balancer://mycluster/test 

请告诉我这其中有什么问题以及我该如何改正

答案1

可能发生的情况是,您正在登录 Server1(xyzz:8080),但下一个请求转到 Server2(xyzz:8280),而 Server2 不知道您在 Server1 上的会话。

有两种主要方法可以解决这个问题。

  1. 在服务器之间共享会话状态执行
    此操作的方式取决于服务器端技术(PHP,Java,Pyton),但基本上你会使用一个通用位置(Redis,SQL,MemCached等)来存储会话信息两个都服务器,以便任何给定的连接都可以转到任一服务器并被识别。

  2. 在您的 mod_proxy 配置中启用“粘性会话”
    同样,如何执行此操作的实际细节取决于您的服务器端技术,但大体上,您需要在指令stickysession中添加一个键/值对,如ProxyPass文档

相关内容