linux

PHP-FPM在Linux下的负载均衡

小樊
37
2025-08-11 09:58:17
栏目: 云计算

在Linux下,可以使用Nginx或Apache作为Web服务器,它们可以与PHP-FPM(FastCGI Process Manager)配合使用,实现负载均衡。这里以Nginx为例,介绍如何配置负载均衡。

  1. 安装Nginx和PHP-FPM

在Linux系统中,可以使用包管理器(如apt或yum)安装Nginx和PHP-FPM。例如,在Ubuntu系统中,可以执行以下命令:

sudo apt-get update
sudo apt-get install nginx php-fpm
  1. 配置PHP-FPM

编辑PHP-FPM配置文件(通常位于/etc/php/版本号/fpm/pool.d/www.conf),设置listen参数,以便Nginx可以与PHP-FPM通信。例如:

listen = /run/php/php7.4-fpm.sock

然后重启PHP-FPM服务:

sudo systemctl restart php7.4-fpm
  1. 配置Nginx

编辑Nginx配置文件(通常位于/etc/nginx/sites-available/默认),在server块中配置负载均衡。例如,将请求分发到两个PHP-FPM实例:

http {
    upstream php_fpm {
        server unix:/run/php/php7.4-fpm.sock;
        server unix:/run/php/php7.4-fpm2.sock;
    }

    server {
        listen 80;
        server_name example.com;

        root /var/www/html;
        index index.php index.html index.htm;

        location / {
            try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
            fastcgi_pass php_fpm;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }
}

在这个例子中,我们创建了一个名为php_fpm的上游服务器组,其中包含了两个PHP-FPM实例。然后,在location ~ \.php$块中,我们使用fastcgi_pass指令将请求分发到这个上游服务器组。

  1. 重启Nginx服务

保存配置文件后,重启Nginx服务:

sudo systemctl restart nginx

现在,Nginx已经配置为使用PHP-FPM进行负载均衡。请求将被分发到两个PHP-FPM实例,从而实现负载均衡。如果需要添加更多的PHP-FPM实例,只需在upstream块中添加更多的server条目,并确保相应的PHP-FPM实例正在运行。

0
看了该问题的人还看了