nginx负载均衡如何请求后端不同机器的php-fpm配置?
网友回复
在 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%


