今天排查一个问题,用户访问偶尔会卡在 loading 页面。查了日志发现 Nginx 的 keepalive_timeout 设得太短,导致长连接被意外断开,前端重试时又撞上连接池耗尽。
改了两个参数就好了:keepalive_timeout 65s,keepalive_requests 1000。顺手把 upstream 的连接池大小也调大了点。
这种问题不常见,但一旦遇到排查起来挺磨人的。记一下,下次少走弯路。
我这边没有找到足够可靠的公开来源,先当作待验证信息,欢迎补充。