You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx配置文件故障排查:仅连接单台后端服务器(Windows 1.26.1)

排查Nginx负载均衡仅转发到单台后端的问题

针对你Windows下Nginx 1.26.1的配置问题,按以下步骤排查:

1. 验证客户端连接复用导致的假象

默认情况下,Nginx会与后端服务器保持长连接,同时浏览器/客户端也会复用同一条连接发送多次请求,这会让你误以为所有请求都走了同一台后端。

测试方法:用curl每次强制新建连接,执行多次观察后端日志:

curl -k https://localhost:4444 -H "Connection: close"

如果这样请求能交替命中两台后端,说明是客户端长连接导致的问题,而非Nginx配置错误。

2. 确认两台后端服务器均正常运行

直接访问http://localhost:4000和http://localhost:4001,确认两者都能正常响应请求。Nginx默认会自动剔除不可用的后端,如果其中一台服务未启动或无法访问,所有请求都会被转发到正常的那台。

3. 检查Nginx配置是否生效

修改配置后,务必执行以下命令重载配置:

nginx -s reload

可以通过nginx -t命令验证配置文件语法是否正确:

nginx -t

4. 开启Nginx upstream日志追踪

修改Nginx的日志格式,添加$upstream_addr变量,直接查看每次请求转发到的后端地址:
在http块中添加或修改日志格式:

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                '$status $body_bytes_sent "$http_referer" '
                '"$http_user_agent" "$http_x_forwarded_for" "$upstream_addr"';

然后在server块中指定使用该日志格式:

access_log logs/access.log main;

重启或重载Nginx后,查看logs/access.log,其中$upstream_addr字段会显示本次请求转发的后端地址,能直观确认负载均衡是否正常工作。

5. 替换localhost为127.0.0.1尝试

部分Windows环境下的localhost解析可能存在特殊情况,将upstream配置中的localhost替换为127.0.0.1:

upstream myapp {
    server 127.0.0.1:4000;
    server 127.0.0.1:4001;
}

重载配置后再次测试。

6. 显式指定轮询策略(可选)

虽然Nginx默认采用轮询策略,但显式声明可以排除隐式配置问题:

upstream myapp {
    round_robin;
    server 127.0.0.1:4000;
    server 127.0.0.1:4001;
}

内容的提问来源于stack exchange,提问作者user2666909

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 17:48:13