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

Monit本地HTTP状态检测异常:TCP/IP协议HTTP失败原因排查

问题分析与解决方案

我来帮你拆解这个问题——你遇到的错误确实和页面返回301状态码直接相关,核心原因是Monit 5.20版本不支持自动跟随HTTP重定向。

具体原因

Monit 5.20及更早的版本在做HTTP状态码检查时,会严格校验你指定的目标路径返回的原始状态码。当/mypage/返回301(永久重定向)时,Monit不会自动跳转到重定向后的地址,而是直接判定这个301不符合你要求的200状态码,因此抛出你看到的TCP/IP协议HTTP检查失败的错误。

可行的解决方案

根据你的场景,有几种不同的处理方式:

1. 直接监控重定向后的目标URL

先通过curl -I http://127.0.0.1:7778/mypage/命令确认/mypage/具体重定向到哪个地址(比如可能是/mypage不带尾斜杠的路径),然后修改Monit配置为直接请求这个目标路径:

check host gateway with address 127.0.0.1
    if failed port 7778 protocol http
        request "/mypage"  # 替换为重定向后的实际路径
        status = 200
    then alert

2. 升级Monit版本(推荐,若环境允许)

Monit从5.21版本开始新增了follow redirects选项,支持自动跟随HTTP重定向。如果你可以升级Debian 9上的Monit(比如使用backports源),就能保留原路径的同时让Monit自动处理重定向:

check host gateway with address 127.0.0.1
    if failed port 7778 protocol http
        request "/mypage/"
        status = 200
        follow redirects
    then alert

3. 调整状态码检查逻辑(仅当301是正常预期时使用)

如果你确认/mypage/返回301是业务允许的正常状态,可以把检查逻辑改为同时接受200和301:

check host gateway with address 127.0.0.1
    if failed port 7778 protocol http
        request "/mypage/"
        status = 200 or status = 301
    then alert

⚠️ 注意:这种方式会掩盖真正的服务异常(比如服务挂了返回500),只适合你明确301是预期状态的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:18:13