如何负载平衡一个PHP应用程序?

我正在寻找指南,build议,或如何负载平衡的PHP应用程序的示例。 我的设置是Ubuntu 10.04和PHP 5.3。 我以前从来没有加载均衡的服务器,我正在寻找任何提供的帮助。

更新:
这是一个networking应用程序,预计有几百个用户在同一时间使用它。 MySQL将成为数据库。 会有会话使用的用户,但我听说,会议不能承载多个服务器。 将会有非常频繁的内容更新。 将会有文件,但我会为这些使用CDN。

Solutions Collecting From Web of "如何负载平衡一个PHP应用程序?"

负载均衡Web应用程序与应用程序本身没有多大关系,但更多的是托管和基础架构。 但是,在构建应该负载平衡的应用程序时,仍然需要注意一些关键点。 这里有一些:

  • 不要使用状态服务器。 这意味着您不能使用传统会话对象,因为它存储在本地计算机的内存中,因此一个对象可能在一台服务器上可用,而在另一台服务器上却不可用
  • 不要使用磁盘来存储任何东西。 与上述相同的原因。 您可能会将文件写入服务器1磁盘,并尝试在服务器2中读取
  • 底线你应该避免任何类型的服务器相关的资源。 如果你需要使用类似的东西(状态服务器,磁盘等),你应该存储一个共享资源,以便所有的负载均衡机器访问它

例如,如果这是现有应用程序的问题,则可以通过在Load Balancer上设置关联来解决此问题,这意味着来自特定用户的所有请求都将由同一台服务器提供服务。 很明显,这种方法的缺点是使得你的应用程序可扩展性较差,因为一​​台服务器比另一台服务器可以获得更多的处理能力。

所以,关于做负载均衡器的软件,我不是一个Linux的家伙,但我看到很多人把Apache作为Webserver和HAProxy作为负载平衡器的应用程序。

希望能帮助到你!

有PHP类可以让你在MySQL中存储会话。

http://php.net/manual/en/function.session-set-save-handler.php

我会在前端服务器上放一些像nginx的东西,并用它来进行负载均衡。 在这之后,您可以使用两台Web服务器,甚至使用nginx来提供静态内容。

在你的web服务器后面,你会有你的MySQL数据库。

我设计了几个网络,收到刚刚超过1000 / imp /秒,并开始网络设计。 流量增加后,我通常只是从那里增加更多的Web服务器和更多的只读数据库,并用一对F5交换nginx。