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

如何配置Monit在Nginx未返回200状态码时自动重启服务

Monit实现Nginx异常状态码自动重启方案

完全可以通过Monit实现对应检测逻辑,以下是可直接落地的配置方式,适配过载锁死返回502/504时自动重启的需求。

基础版配置(非200即触发重启)

该配置无需额外脚本,用Monit内置的HTTP检测能力即可实现,适合只要响应不是200就判定服务异常的场景:

  • 首先确认Monit已正常安装,且具备Nginx服务的启停权限,手动执行Nginx重启命令无报错即可。
  • 新建或编辑Monit的Nginx配置文件,默认路径为/etc/monit/conf.d/nginx(不同发行版路径可能略有差异,优先放在conf.d目录下避免修改主配置),写入以下内容:
check process nginx with pidfile /var/run/nginx.pid
  start program = "/usr/sbin/service nginx start"
  stop program = "/usr/sbin/service nginx stop"
  # HTTP状态检测
  if failed host 127.0.0.1 port 80 protocol http
    request "/healthcheck.html"
    # 仅认定200状态码为正常
    status = 200
    timeout 5 seconds
  then restart
  # 连续3次检测失败才触发重启,默认检测间隔30秒,对应1.5分钟异常,匹配1-2分钟锁死的场景
  if 3 restarts within 5 cycles then timeout
  • 配置里用到的/healthcheck.html建议在Nginx中配置为本地直接返回200的静态路径,不要转发到后端应用,避免后端服务异常导致误重启Nginx。
  • 写完配置执行monit -t校验语法,无报错后执行monit reload加载配置即可生效。

进阶版配置(仅502/504触发重启)

如果需要忽略403、404这类客户端错误,只在返回502/504网关错误时触发重启,需要搭配简单的检测脚本实现:

  • 新建检测脚本,路径可自定义,比如/etc/monit/scripts/nginx_status_check.sh,写入以下内容:
#!/bin/bash
# 请求检测地址,仅获取响应状态码
STATUS=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 3 http://127.0.0.1/healthcheck.html)
# 匹配到502/504时返回1(判定检测失败),其余状态均返回0(正常)
if [ "$STATUS" -eq 502 ] || [ "$STATUS" -eq 504 ]; then
  exit 1
fi
exit 0
  • 给脚本添加执行权限:chmod +x /etc/monit/scripts/nginx_status_check.sh
  • 修改Monit的Nginx配置,替换原有HTTP检测规则为脚本检测:
check process nginx with pidfile /var/run/nginx.pid
  start program = "/usr/sbin/service nginx start"
  stop program = "/usr/sbin/service nginx stop"
  if failed script "/etc/monit/scripts/nginx_status_check.sh"
    timeout 5 seconds
  then restart
  if 3 restarts within 5 cycles then timeout
  • 同样执行monit -t校验语法后重载Monit配置即可。

配置调优建议

  • 不要把检测阈值设得过于敏感,建议至少连续2次检测失败再触发重启,避免瞬时流量波动、偶发异常导致不必要的服务重启。
  • 上线前可以手动模拟异常验证规则有效性,比如临时修改Nginx配置返回502,观察Monit是否按预期执行重启动作,验证完成后恢复配置即可。
  • 如果你用的是systemd之外的服务管理方式,把配置里的start/stop命令替换成你实际使用的Nginx启停命令即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:31:06