Caddy反向代理(reverse_proxy)-超时设置

超时设置例子

demo.example.com {
    # 建议带上邮箱,方便接收证书到期告警
    tls your@email.com
    # 将全部请求代理到本地8080后端服务
    reverse_proxy 127.0.0.1:8080 {
        transport http {
            dial_timeout 5s        # 连接后端超时
            response_header_timeout 10s
            keepalive 20s
            max_idle_conns_per_host 16
        }
    }
}

解释

  • dial_timeout 5s:5 秒连不上后端服务器,直接返回 502 Bad Gateway 给浏览器。

  • response_header_timeout 10s:连接建立成功之后,等待后端返回响应头的最大时间,后端拿到请求后,卡住超过 10 秒还不返回任何响应头 → Caddy 断开连接,返回504 Gateway Timeout。

  • keepalive 20s:HTTP Keep‑Alive 长连接空闲超时,一次请求处理完毕之后,这条 TCP 连接空闲保留 20 秒。20 秒内有新代理请求过来,直接复用这条 socket;超过 20 秒没有新请求,Caddy 主动关闭这条连接。好处:减少频繁 TCP 三次握手开销,提升代理性能

  • max_idle_conns_per_host 16:对同一个后端最多保留多少条空闲长连接。默认是 32,中小型项目配置 16,节省内存


原文出处:/show_1GW3pyaYn9Pk.html