+
92
-

nginx负载均衡如何请求后端不同机器的php-fpm配置?

nginx负载均衡如何请求后端不同机器的php-fpm配置?


网友回复

+
4
-

在 Nginx 中实现对后端多台机器 PHP-FPM 的负载均衡,主要有 两种架构方案。你需要根据你的实际部署情况选择:

方案一:Nginx 直接负载均衡 PHP-FPM(FastCGI 层面)

这种方案下,Nginx 作为统一的入口,直接将 PHP 请求通过 FastCGI 协议分发到不同服务器的 PHP-FPM 进程上。

1. Nginx 负载均衡配置

在 Nginx 的 http 块中定义 upstream,然后在 server 中调用。

http {
    # 定义 PHP-FPM 后端集群
    upstream php_fpm_cluster {
        # server 后面是后端机器的 IP 和 PHP-FPM 监听端口
        server 192.168.1.101:9000 weight=1;
        server 192.168.1.102:9000 weight=1;
        server 192.168.1.103:9000 weight=1;

        # 可选:故障转移配置
        # 30秒内失败3次,则30秒内不再转发给该机器
        # server 192.168.1.101:9000 max_fails=3 fail_timeout=30s;
    }

    server {
        listen 80;
        server_name example.com;

        # ⚠️ 注意:这个路径必须和所有后端机器上的代码路径完全一致
        root /var/www/html; 

        location ~ \.php$ {
            include fastcgi_params;

            # 关键:指向 upstream 名称,而不是具体的 IP
            fastcgi_pass php_fpm_cluster;

            # 传递脚本绝对路径给后端 PHP-FPM
            fastcgi_param SCRIPT_FILENAME $document_...

点击查看剩余70%

我知道答案,我要回答