技术与生活 / 一篇记录
代理的“等多久”,至少有两个答案
连接上游与等待上游返回是两个阶段,分别设置才能准确排障。
连接超时处理的是无法与上游建立连接;读取超时处理的是连接已存在但迟迟没有新数据。两者适合不同故障,统一加大数值常常只会延长用户等待。
操作与观察
配置片段不是完整配置文件,应放入正确的上下文,并按实际环境调整路径与端口。
proxy_connect_timeout 3s;
proxy_read_timeout 30s;
用可控延迟接口验证行为,再观察错误日志。
使用可控接口分别模拟拒绝连接和延迟返回。长轮询或流式输出需要结合业务调整,同时保留监控,避免把真正卡住的请求永久挂起。
调整超时之后要观察错误率与连接占用,而不只是看一次请求终于等到了结果。等待更久可能减少表面超时,却让慢请求堆积,最终影响原本正常的用户请求。
别遗漏这条边界
read timeout 通常限制两次读取之间的等待,并非整个请求的绝对时长。
参考:Nginx 文档。