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

如何让Caddy反向代理无论后端是否可用均返回200响应?

实现Caddy反向代理始终返回200响应(无论后端是否可用)

可以实现,你需要利用Caddy的错误处理机制,拦截后端不可用或返回非200状态码的情况,强制返回200响应给调用方。以下是两种可行的配置方案:

方案1:全局错误拦截(覆盖所有代理错误场景)

这个方案会捕获所有反向代理过程中出现的错误(包括后端连接失败、超时、后端返回非200状态码等),统一返回200响应:

abc.xyz.com {
    reverse_proxy localhost:23003

    handle_errors {
        # 可自定义响应内容,不需要的话直接写 respond 200 即可
        respond 200 "Backend service temporarily unavailable"
    }
}

方案2:针对反向代理的精准错误替换

这个方案仅针对后端返回的4xx/5xx状态码进行替换,适合只需要覆盖后端主动返回错误的场景:

abc.xyz.com {
    reverse_proxy localhost:23003 {
        # 拦截后端返回的400-599状态码,替换为200
        error_response 400-599 {
            status_code 200
            body "Backend returned error, but we return 200"
        }
    }
}

注意事项

  • 如果不需要返回任何响应体,可以删除配置中的body部分,只保留respond 200或status_code 200。
  • 方案1的覆盖范围更广,包含代理连接失败、超时等非后端返回的错误场景,更匹配你的需求(避免调用方因连续收到非200响应停止请求)。

内容的提问来源于stack exchange,提问作者Asnim P Ansari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:56:07