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

如何配置Caddy超时参数,使其在65秒后终止请求执行?

解决方案:用反向代理超时或请求总超时实现需求

你提到的四个Caddy timeout参数都无法直接满足“限制请求处理总时长65秒”的需求,逐个分析:

  • read_body:仅管控读取客户端上传内容的时间,和PHP处理时长无关,排除。
  • read_header:仅限制读取请求头的时间,和后端处理逻辑不相关,排除。
  • write:是Caddy向客户端发送响应的时间限制,比如大文件下载缓慢时会触发,并非PHP处理的等待时长限制,排除。
  • idle:是长连接模式下等待下一个请求的空闲时长,和当前请求的处理周期无关,排除。

正确的做法是使用以下两种配置之一:

1. 反向代理上游超时(推荐)

如果你的PHP服务是通过Caddy反向代理部署(比如对接PHP-FPM),直接在reverse_proxy块中设置timeout,专门限制Caddy等待PHP返回响应的时间:

yourdomain.com {
    reverse_proxy 127.0.0.1:9000 { # 替换为你的PHP服务地址
        timeout 65s
    }
}

该配置会在PHP处理超过65秒仍未返回时,直接由Caddy终止请求并返回504状态码,完全匹配你的需求。

2. 全局/路由级请求总超时

如果需要覆盖整个请求周期(包括读取请求、PHP处理、发送响应的全流程),可以设置request超时:

# 全局生效配置
{
    timeouts {
        request 65s
    }
}

# 或仅针对特定路由生效
yourdomain.com/api {
    timeouts {
        request 65s
    }
    reverse_proxy 127.0.0.1:9000
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 16:15:15