商城首页欢迎来到中国正版软件门户

您的位置:首页 >Nginx配置proxy_send_timeout后端超时解决

Nginx配置proxy_send_timeout后端超时解决

  发布于2026-04-12 阅读(0)

扫一扫,手机访问

proxy_send_timeout 控制 Nginx 向后端服务器发送请求体时的超时,即 Nginx 主动向 upstream 发送数据过程中等待后端 TCP 接收缓冲区空闲的时间,不涉及响应读取。

Nginx在http块配置proxy_send_timeout后端发送超时

proxy_send_timeout 是 Nginx 在 httpserverlocation 块中用于控制**Nginx 向后端服务器发送请求体(request body)时的超时时间**,不是控制后端响应的超时。

它管的是哪一段通信?

这个指令只影响 Nginx 主动向 upstream(如 FastCGI、proxy_pass 目标)发送数据的过程,典型场景包括:

  • 客户端上传大文件,Nginx 把接收到的请求体分块转发给后端时,每块之间等待后端接收确认的时间
  • Nginx 向后端发送 POST/PUT 的完整 body 数据流过程中,若后端处理慢或网络卡顿,Nginx 等待后端 TCP 接收缓冲区有空闲的时间

注意:它不控制 Nginx 等待后端返回响应头或响应体的耗时(那是 proxy_read_timeout 的职责)。

配置位置和继承关系

可以在 httpserverlocation 任意层级设置,低层级会覆盖高层级。例如:

http {
    proxy_send_timeout 30;  # 默认是 60 秒
server {
    location /upload/ {
        proxy_pass http://backend;
        proxy_send_timeout 120;  # 此处上传接口放宽到 120 秒
    }
}

}

常见误区和调优建议

  • 设得太小(如 5 秒)容易在上传大文件、弱网环境或后端负载高时触发 504 Gateway Time-out,错误日志里通常出现 upstream timed out (110: Connection timed out) while sending request to upstream
  • 设得过大(如 300 秒)可能让异常连接长期占用 worker 进程,影响并发能力;应结合业务实际最大上传时长来设定
  • 如果后端是 PHP-FPM,还需同步检查 fastcgi_send_timeout,它作用类似但针对 FastCGI 协议层
  • 该超时仅在 Nginx 开始发送请求体后才开始计时;如果请求体为空(如 GET 请求),此超时不生效
本文转载于:互联网 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注