尽管 EngineX 正在运行,但是 monit 似乎无法弄清楚。
这是我的监控日志:
[PDT Apr 13 02:19:19] error : HTTP error: Server returned status 400
[PDT Apr 13 02:19:19] error : 'nginx' failed protocol test [HTTP] at INET[localhost:80] via TCP
[PDT Apr 13 02:19:19] info : 'nginx' trying to restart
[PDT Apr 13 02:19:19] info : 'nginx' stop: /etc/init.d/nginx
[PDT Apr 13 02:19:20] info : 'nginx' start: /etc/init.d/nginx
monitrc文件包含以下配置:
if failed port 80 protocol http and request '/ping.txt' # check for response
with timeout 20 seconds
then restart
我可以通过以下方式访问文件山猫http://localhost:80/ping.txt没有任何问题。
当 nginx 运行正常时,为什么 monit 会难以请求文件?
答案1
0.6.15 之前的 Nginx 版本会向 GET 等请求返回 400http://www.domain.comHTTP/1.0。我猜你在过去两年内更新过 Nginx 吧?如果是,请尝试提升 Nginx 调试级别并在此发布日志。
答案2
该问题原来是由于版本差异造成的。
我原来的 monitrc 文件是为 v5+ 设计的,但运行它的机器使用的是 Monit 4.1