我正在使用lighttpd作为php应用服务器的webserver。平均此服务器上的负载大约为2-3。 MySQL数据库被分离到另一台服务器(它的负载为~0.4)。我怎么能扩展php应用服务器?
谢谢。
答案 0 :(得分:14)
简而言之,一般来说,解决方案是:
负载均衡服务器可以是一些专用硬件;或反向代理,使用Apache (例如,参见mod_proxy_balancer
),nginx (例如参见Load Balancing with Nginx),varnish,..
使用多个PHP服务器而不是一个PHP服务器时,通常会遇到的最重要的问题与文件系统有关:使用多个服务器,每个服务器都有自己的磁盘和文件系统。
例如,如果用户在服务器1上为一个页面随机平衡,而服务器2在另一个页面上随机平衡,则不能使用基于文件的会话:会话将在服务器1上创建,但在服务器上找不到2,以后。
在这种特定情况下,您将不得不使用另一种机制来存储会话 - 例如,将它们存储在数据库或memcached中。
与图片相同的东西(例如用户上传):你必须要么:
评论后编辑:对于部署,使用多台服务器,我通常只使用一台服务器。
有关我经常使用的流程类型的更多信息,您可以查看我在这个问题上回答的答案: Updating a web app without any downtime 。
给出的解释是针对一台服务器,但要在多台服务器上执行相同的操作,您可以:
(对于一个应用程序,我已经完成了多达7台服务器,并且从未遇到任何问题)