我有一个Web应用程序当前运行在一个单一的LAMP服务器,我打算2分成两台服务器,这样的客户端请求到达的服务器之一,它将被转发到第二台服务器的情况下,加载第一个是高的。 请求来到我当前服务器的IP地址 (不是域名) 。
我怎样才能做到这一点?
我希望我的问题是清楚的,请在需要更多细节的情况下发表意见。
谢谢
你可以使用haproxy 。 它可以用来实现基于TCP和HTTP的应用程序的负载平衡和代理。 它有许多负载均衡algorithm,如:循环和最less连接。
Linux虚拟服务器提供了一个中间服务器(负载均衡器),它将简单地将传入的IP数据包转发给其他服务器,这些服务器直接将响应发送回发出请求的客户端。
你也可以考虑一个反向代理–Squid,Apache,nginx,lighttpd都可以提供这种function – 在你的反向代理中完成一个完整的web请求,然后这个反向代理将这个请求转发到后端web服务器。 这是一个比LVS更重的负载方法,但最初configuration要容易得多。
被警告如何使你的应用程序,你有2种负载平衡器:
粘性负载平衡器:每个客户端都坚持一个服务器(通过粘性会话),它可以与任何应用程序一起工作,但是这不是“真正的”负载平衡,因为你的客户端粘在这个服务器上,如果你的服务器停止工作,坚持在这台服务器上将无法使用您的网站(暂时)
简单的负载平衡器:每个客户端在每个请求中随机地(或根据服务器负载,请求数量等参数)在新服务器上进行。 这是最好的,但是你的web应用程序需要为此configuration,你需要同步会话,如果可能的话,不同服务器之间的caching(例如使用memcached),它可以提供HA(例如HAProxy),它检测到服务器停止并自动停止发送客户端。