西西软件园多重安全检测下载网站、值得信赖的软件下载站!
软件
软件
文章
搜索

首页 → 业内动态 → 业内资讯 → Nginx上游每分钟新建600次连接,复用后仍超时

Nginx上游每分钟新建600次连接,复用后仍超时

相关软件相关文章发表评论 来源:本站整理时间:2026/11/5 14:29:41字体大小:A-A+

ServLlamav2.0.0-alpha.2 服务器管理
  • 类型:系统工具大小:55.1M语言:英语 评分:10.0
  • 标签:
立即下载

凌晨流量峰值到来时,Nginx 上游连接数每隔几十秒冲高一次,后端日志里成功请求与 504 交替出现。监控中“连接建立失败”和“上游响应超时”同时增多,常见误区是只把 proxy_read_timeout 调大,结果连接与端口压力更大,错误却没有减少。

如果你正在选机器,或者想先把线路和配置跑通再谈长期方案,可以先看看这几家的线路说明和技术参数:tudcloud(低价云服务器),先看清带宽线路、流量策略和退款条款,再决定要不要迁。

这类故障通常由五件事叠加:上下游复用策略混淆;上游池未正确启用;空闲连接占槽;连接、读取与总耗时未分层;失败重试把一次请求放大成多次连接。先判断连接断在哪里再调参,否则只是把堆积从后端挪到代理。

先确认上游连接能否真正复用

上游连接池与长连接复用不是打开开关就结束。upstream 中即使写了 keepalive 32,也只是允许缓存空闲连接;真正复用还需设置 proxy_http_version 1.1,并用 proxy_set_header Connection ""; 清空该头。若上游返回 Connection: close,或仍按 HTTP/1.0 通信,连接用完即关,持续短建还会累积 TIME_WAIT 和临时端口压力。

客户端到 Nginx 与 Nginx 到后端是两条独立链路。可复用的空闲连接不足时,新请求只能新建连接;若再撞上文件描述符、后端 max_connections 或 NAT 限制,就会连接耗尽。配置值只约束空闲缓存,不能替代后端并发上限;应按活跃量和突发余量反推,并核对 worker 放大。TLS 还要检查会话复用、SNI 与证书域名。

Nginx上游每分钟新建600次连接,复用后仍超时

把代理超时分层定位

日志应带上 request_time、upstream_connect_time、upstream_header_time、upstream_response_time、upstream_status 与 upstream_addr。connect 近零而 response 变长,多半是后端处理慢;connect 持续升高并出现 SYN-SENT、SYN-RECV,应查监听队列、网络路径、防火墙和连接上限。

在代理超时分层中,proxy_connect_timeout 管建立连接,proxy_read_timeout 管两次上游读取之间的间隔,proxy_send_timeout 管写入停顿;read timeout 不是请求总时限。慢速持续输出的请求可能一直不超时,所以入口层仍要设置总截止时间,重试层也必须服从它。

空闲连接回收也需单独设置。keepalive_requests 限制单连接请求数,keepalive_time 限制池内寿命;较新版本还可用 keepalive_timeout 控制空闲时间,配置前先核对 Nginx 版本。数值太小会频繁重建,太大则可能保留失效连接,直到下一请求才暴露。

Nginx上游每分钟新建600次连接,复用后仍超时

让故障重试有明确边界

proxy_next_upstream 能在连接错误、超时或指定状态码时切换节点,但每次尝试都会增加连接消耗。GET、HEAD 等幂等请求可有限重试;POST、PATCH 在请求体已发送后重试可能重复写入,只有具备幂等键并显式允许 non_idempotent 时才应尝试。

故障重试策略要按“次数乘单次成本”评估放大。可用 proxy_next_upstream_tries 2 一类的小额度限制尝试;400、401、404 等业务错误不宜重试,重试节点也必须健康且能承接突发。日志中同一 request_id 若出现多个 upstream_addr 或逗号分隔状态,说明一次客户端请求已变成多次上游连接,应联动总截止时间与任务取消。

Nginx上游每分钟新建600次连接,复用后仍超时

用容量和压测闭环校验

容量先从公式起步:稳态上游并发约等于 QPS 乘以后端平均占用时间,再加握手、切换与突发余量。连接池只是空闲连接缓存,并非后端并发上限。还要核对 worker 数乘以 keepalive 后,是否超过后端 max_connections、文件描述符、NAT 或 conntrack 容量。

灰度时逐级增加 QPS,观察新建连接速率、connect 与 response 时间、504 比例及后端错误率。可借助 ServLlama 辅助施加负载并核对吞吐、延迟和错误率,测试环境需隔离写操作。每轮只改一个变量并保留原始日志,才能判断收益来自连接复用,而不是缓存命中或业务波动。

上线检查清单:①确认 upstream keepalive、HTTP/1.1 和空 Connection 头;②按版本设置请求数、池内寿命与空闲回收;③分开 connect、read、send 和入口总超时;④幂等请求限制尝试,非幂等请求绑定幂等键;⑤核对 worker 放大、fd、后端连接上限与 NAT;⑥确认连接建立速率下降且 504 不再增长;⑦监控多地址重试并设置总截止时间。

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶顶
    • 1 难过难过
    • 5 囧囧
    • 3 围观围观
    • 2 无聊无聊

    发表评论

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲