如何在2台服务器上同时使用2个Web服务器,而不会再次发生混乱

我有大的phpbb论坛和2台服务器。 想要将http加载从1个Web服务器分发到2个Web服务器。 过去是不是已经有了问题

在两台服务器(1和2)上都是lighttpd。 当用户连接到服务器号码1时,我使用了各种负载平衡器,然后平衡器决定他是否应该连接到服务器1或2上的lighttpd。

一切都很好,除了加载ballancing是循环(随机),当用户login论坛(某种会话),然后在下一页被redirect到第二台服务器,他没有他的会议! 所以他必须再次login,但是谁知道下一次将被redirect到哪里。

解决scheme是创build可从两个服务器访问的会话。 那么不pipe从哪个用户访问,他不会有问题(我认为)。 究竟是什么问题,我认为它的会话文件在tmp从lighttpd,因为从phpbb会话是在两个服务器可以访问的数据库。 另一件事可能是从phpbb会话的cookie写在那里用于login的服务器的ip,如果ip先前在cookie中被改变(第二web服务器),导致问题。

另外的问题是,当用户被redirect到Web服务器2时,他将获得redirect他的服务器的IP地址(不是他自己的IP)。 这就像他从服务器1 – >服务器2隧道。没有直接redirect到服务器2,因为它应该。

这两个问题都需要帮助,我需要做的,让用户使用我的网站从2 diffirentnetworking服务器(在这个例子lighttpd)没有问题。

一个字: haproxy – 它会给基于IP哈希值的持久连接,并将修复所有的问题,包括调谐IP。

我已经用以下两种方法之一解决了这个问题。 方式1涉及在用户机器上使用所有需要的会话信息设置cookie。 第二种方式是使用一个负载均衡器来进行持久连接 – 也就是说,只要用户正在使用你的站点,当一个用户连接进来时,他们将停留在LB最初放置的任何服务器上。

或者只是将NFS服务器设置为共享会话目录,然后将其挂载到两个Web服务器上。