当前位置:首页 >  站长 >  建站经验 >  正文

Nginx upstream健康检查:后端挂了自动踢出局

 2026-08-25 18:30  来源: 互联网   我来投稿 撤稿纠错

  一键部署OpenClaw

单台后端出问题时,如果Nginx还继续把请求发过去,用户看到的不是502就是超时。upstream配置里的max_fails和fail_timeout可以让Nginx自动把失败节点暂时下线,保证正常请求不受影响。

这是被动健康检查,不需要商业模块。Nginx在指定时间内检测到多次失败,就把节点标记为不可用,等fail_timeout过后再尝试恢复。

upstream backend {
server 192.168.1.11:8080 weight=5 max_fails=3 fail_timeout=30s;
server 192.168.1.12:8080 weight=5 max_fails=3 fail_timeout=30s;
server 192.168.1.13:8080 backup;
}

server {
location / {
proxy_pass http://backend;
proxy_next_upstream error timeout http_500 http_502 http_503;
proxy_connect_timeout 5s;
}
}

proxy_next_upstream很关键,它告诉Nginx在什么情况下把请求换一台后端重试。但只建议对幂等请求开启GET/HEAD重试,POST请求重复提交可能带来业务风险。

如果有条件,建议用Nginx Plus的主动健康检查模块,会周期性向后端发探测请求,比被动检测更早发现问题。免费版用被动方案也基本够用了。

数据来源:Nginx官方文档 ngx_http_upstream_module(max_fails / fail_timeout / proxy_next_upstream)

申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!

相关标签
企业建站

相关文章

热门排行

信息推荐