504 到底该改哪个 timeout
nginx 报 504,第一反应是调 proxy_read_timeout。但 504 有三种来源,调错地方只是把问题往后推。
proxy_connect_timeout:nginx 连上游连不上,默认 60s。上游挂了或者防火墙丢包时触发。
proxy_read_timeout:连接建立后,两次读之间的最大间隔。上游处理慢、迟迟不返回第一个字节时触发。
send_timeout:nginx 往客户端写,客户端迟迟不收。
日志里能看到具体哪个:upstream timed out (110: Connection timed out) while reading response header from upstream 就是 read 超时。先确认上游是真的慢(直连 curl 计时),再决定是调超时还是优化上游——多数时候调大超时只是把 504 变成更慢的 504。