【发布时间】:2011-02-08 07:45:39
【问题描述】:
我使用 lighttpd 作为 php 应用程序服务器的网络服务器。平均此服务器上的负载约为 2-3。 MySQL 数据库与另一台服务器分离(它的负载约为 0.4)。如何扩展 php 应用程序服务器?
谢谢。
【问题讨论】:
-
这个问题更适合superuser.comimho。
标签: php architecture scalability
我使用 lighttpd 作为 php 应用程序服务器的网络服务器。平均此服务器上的负载约为 2-3。 MySQL 数据库与另一台服务器分离(它的负载约为 0.4)。如何扩展 php 应用程序服务器?
谢谢。
【问题讨论】:
标签: php architecture scalability
简而言之,一般来说,解决方案是:
负载均衡服务器可以是一些专门的硬件;或反向代理,使用 Apache (例如,参见 mod_proxy_balancer)、nginx (例如,参见 Load Balancing with Nginx)、varnish,...
在使用多台 PHP 服务器而不是一台服务器时,您通常会面临的最重要问题与文件系统有关:对于多台服务器,每台服务器都有自己的磁盘和文件系统。
例如,如果用户在服务器 1 上随机平衡一个页面,而在服务器 2 上随机平衡另一个页面,则不能使用基于文件的会话:会话将在服务器 1 上创建,但不会在服务器上找到2、以后。
在这种特定情况下,您必须使用另一种机制来存储会话——例如,将它们存储在数据库或 memcached 中。
图片相同(例如,由用户上传):您必须:
在评论后编辑:对于多台服务器的部署,我通常会像只使用一台服务器那样做。
有关我经常使用的流程类型的更多信息,您可以查看我不久前就这个问题给出的答案:Updating a web app without any downtime。
这里给出的解释是针对一台服务器,但要在多台服务器上做同样的事情,你可以:
(我已经为一个应用程序使用了多达 7 台服务器,从未遇到任何问题)
【讨论】: