proxy_connect_timeout是nginx与后端建立tcp连接的超时参数,仅作用于三次握手阶段,单位支持秒和毫秒,需在http/server/location块中配置且仅对proxy_pass生效,内网建议设3–5秒,跨域可放宽至8–15秒,并须配合健康检查与重试机制。

proxy_connect_timeout 是 Nginx 作为反向代理时,与后端服务器建立 TCP 连接的超时时间,单位是秒(支持小数,如 3.5)。它不控制后续的数据传输或响应等待,只管“连上要多久”。默认值为 60 秒。
在哪配置?作用范围有哪些
该指令可在 http、server 或 location 块中使用,优先级从高到低:location > server > http。
- 全局设置(影响所有代理)写在
http块里 - 针对某个服务(如 API)调优,建议放在
location块内更精准 - 注意:它只对
proxy_pass生效,对 FastCGI、uWSGI 等不生效(它们有各自对应的 connect timeout 指令)
典型配置示例
以下是在 location 中设置 5 秒连接超时的写法:
FastAPI + Flask 混合部署最佳实践,解决路由定义、API 代理等常见问题,适用于同时运行 FastAPI API 与 Flask 前端的场景。
location /api/ {
proxy_pass https://backend-server;
proxy_connect_timeout 5;
proxy_send_timeout 30;
proxy_read_timeout 30;
}
如果后端部署在本地 Docker 或内网,网络稳定,可设为 1 或 2;若跨公网或链路复杂,适当放宽到 10~15,避免因瞬时抖动误断连接。
和 proxy\_read\_timeout、proxy\_send\_timeout 的区别
三者分工明确,别混用:
- proxy_connect_timeout:仅限 TCP 握手阶段(SYN → SYN-ACK → ACK),连接未建立成功即超时
- proxy_send_timeout:Nginx 向后端发送请求体(如 POST 数据)时,两次写操作之间的间隔上限
- proxy_read_timeout:Nginx 等待后端返回响应头/响应体时,两次读操作之间的间隔上限
例如:后端卡在数据库查询,迟迟不发响应,这时触发的是 proxy_read_timeout,不是 proxy_connect_timeout。










