在Linux中,要实现PHP-FPM的负载均衡,可以使用Nginx或Apache作为反向代理服务器。这里以Nginx为例,介绍如何实现负载均衡。
在终端中输入以下命令来安装Nginx:
sudo apt-get update
sudo apt-get install nginx
编辑Nginx的配置文件,通常位于/etc/nginx/sites-available目录下。创建一个新的配置文件,例如php-fpm.conf,并添加以下内容:
upstream php_fpm_pool {
server unix:/run/php/php7.4-fpm.sock; # 对于PHP 7.4,使用这个路径
# server 127.0.0.1:9000; # 对于PHP 7.4,使用这个路径
# server unix:/var/run/php/php7.4-fpm.sock; # 对于PHP 7.4,使用这个路径
# server 127.0.0.1:9000; # 对于PHP 7.4,使用这个路径
# 可以添加更多的PHP-FPM实例,以实现负载均衡
}
server {
listen 80;
server_name example.com; # 替换为你的域名或IP地址
root /var/www/html; # 替换为你的网站根目录
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_pass php_fpm_pool;
fastcgi_index index.php;
include fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
在这个配置文件中,我们定义了一个名为php_fpm_pool的上游服务器组,其中包含了PHP-FPM实例的地址。你可以根据实际情况添加更多的PHP-FPM实例,以实现负载均衡。
然后,将这个配置文件链接到sites-enabled目录:
sudo ln -s /etc/nginx/sites-available/php-fpm.conf /etc/nginx/sites-enabled/
在终端中输入以下命令来重启Nginx,使配置生效:
sudo systemctl restart nginx
现在,Nginx已经配置为使用PHP-FPM进行负载均衡。访问你的网站,Nginx会将PHP请求分发到不同的PHP-FPM实例上,从而实现负载均衡。