我正在寻找有关如何负载均衡php应用程序的指南、建议或示例。我的系统是Ubuntu 10.04和PHP 5.3。我以前没有进行过服务器负载平衡,并且正在寻求任何提供的帮助。
更新:
这是一个Web应用程序,预计会有几百个用户同时使用它。MySQL将是数据库。将使用会话对用户进行身份验证,但我听说会话无法在多个服务器之间传递。内容将非常频繁地更新。会有文件,但我将只使用CDN。
我正在寻找有关如何负载均衡php应用程序的指南、建议或示例。我的系统是Ubuntu 10.04和PHP 5.3。我以前没有进行过服务器负载平衡,并且正在寻求任何提供的帮助。
更新:
这是一个Web应用程序,预计会有几百个用户同时使用它。MySQL将是数据库。将使用会话对用户进行身份验证,但我听说会话无法在多个服务器之间传递。内容将非常频繁地更新。会有文件,但我将只使用CDN。
负载均衡一个Web应用程序与应用程序本身无关,而与主机和基础架构更相关。然而,在构建一个被负载平衡的应用时,仍有一些重要的点需要注意。以下是其中一些:
如果这对于现有应用程序来说是一个问题,例如,您可以通过在负载均衡器上设置“亲和性”来解决这个问题,这意味着所有来自特定用户的请求将由同一台服务器处理。显然,这种方法的缺点是使您的应用程序变得不太可扩展,因为一台服务器可能会获得比另一台服务器更多的处理。
因此,关于负载均衡软件,我不是Linux专家,但我看到很多人谈论Apache作为Web服务器和HAProxy作为负载均衡器应用程序。
希望对您有所帮助!
有PHP类可以让你将会话存储在MySQL中。
http://php.net/manual/en/function.session-set-save-handler.php
我会在前端服务器上安装类似nginx的软件,用它来进行负载均衡。在其后面,您可以拥有两个Web服务器,甚至使用nginx来提供静态内容。
在您的Web服务器后面,您将拥有您的MySQL数据库。
我设计过一些网络,其每秒接收超过1,000次请求/秒,并从此开始网络设计。随着流量的增加,我通常只需从那里扩展基础架构,添加更多的Web服务器和只读数据库,并使用一对F5替换nginx。