我在我的Linux服务器上有两个萤火虫服务器实例,我想通过使用Apache代理平衡器来平衡负载。 但是平衡器不能正常工作,以循环方式一个接一个地向wild服务器发送请求,但没有一个正常工作。 在我的网站上,我可以看到login页面,但添加login凭据后,它不redirect到主页,在日志中,我可以看到它的login正确。 如果我停止一台服务器,那么一切正常
这是我的代理configuration
ProxyRequests Off ProxyPreserveHost On ProxyVia On <Proxy balancer://mycluster> # WebHead BalancerMember http://xyzz:8080 # WebHead2 BalancerMember http://xyzz:8280 </Proxy> ProxyPass /test balancer://mycluster/test ProxyPassReverse /test balancer://mycluster/test
请告诉我什么是错误的,如何纠正这一点
可能发生的事情是,您正在login到Server1(xyzz:8080),但是下一个请求会转到Server2(xyzz:8280),该服务器不了解Server1上的会话。
有两个主要的方法来解决这个问题。
在服务器之间共享会话状态
你这样做的方式取决于你的服务器端技术(PHP,Java,Pyton),但基本上你会使用一个公共位置(Redis,SQL,MemCached等)来存储两个服务器的会话信息,这样任何给定的连接都可以进入服务器并被识别。
在你的mod_proxyconfiguration中启用“粘性会话”
同样,如何做到这一点的实际细节取决于您的服务器端技术,但在广泛的笔触,你需要添加stickysession键/值对ProxyPass指令,如文档中所述。