在Ubuntu下,要实现PHP-FPM的负载均衡,可以使用Nginx作为反向代理服务器。以下是配置Nginx实现负载均衡的步骤:
sudo apt-get update
sudo apt-get install nginx
sudo apt-get install php-fpm
/etc/php/7.x/fpm/pool.d/www.conf
(其中7.x是你的PHP版本)。sudo nano /etc/php/7.x/fpm/pool.d/www.conf
找到listen
行,将其更改为:
listen = /run/php/php7.x-fpm.sock
将7.x
替换为你的PHP版本。保存并退出。
sudo systemctl restart php7.x-fpm
将7.x
替换为你的PHP版本。
/etc/nginx/sites-available/default
。sudo nano /etc/nginx/sites-available/default
在server
块中,找到location ~ \.php$
部分,修改为以下内容:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.x-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
将7.x
替换为你的PHP版本。
http
块中,添加以下内容:upstream php-fpm {
server unix:/run/php/php7.x-fpm.sock;
# 如果有多个PHP-FPM实例,可以添加更多server行
# server unix:/run/php/php7.y-fpm.sock;
}
将7.x
和7.y
替换为你的PHP版本。
然后,在server
块中,将fastcgi_pass
行更改为:
fastcgi_pass php-fpm;
保存并退出Nginx配置文件。
重启Nginx服务:
sudo systemctl restart nginx
现在,Nginx将作为PHP-FPM的反向代理服务器,并实现负载均衡。如果有多个PHP-FPM实例,Nginx将根据配置的权重将请求分发到不同的实例。