502 Bad Gateway nginx后台报错upstream sent too big header while reading response header from upstream
请求nginx报错502 Bad Gateway

查看后台error.log日志(nginx安装目录下logs下)可以看到:
2025/04/17 10:45:11 [error] 32238#0: *1869253 upstream sent too big header while reading response header from upstream, client: 192.168.22.49, server: localhost, request: "POST /big_header HTTP/1.1", upstream: "http://192.168.22.49:8185/my_test", host: "10.10.22.212:60701"
提示响应头过大。
如果可以减小后端服务的响应头是最好,如果不能减小,则修改nginx配置以适应大的响应头。
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
含义可参考官方文档
ngx_http_proxy_module
proxy_buffer_size:默认4k或8k,读取响应头时使用的缓冲区大小。
proxy_buffers:为单个连接设置用于从代理服务器读取响应体的缓冲区的数量和大小。默认情况下,缓冲区大小等于一个内存页。这是4K或8K,取决于平台。其中4表示数量,256k表示单个大小,总大小为4 * 256k = 1M.
proxy_busy_buffers_size: 当启用来自代理服务器的响应缓冲时,限制缓冲区的总大小,当响应尚未完全读取时,缓冲区可能忙于向客户端发送响应。与此同时,剩余的缓冲区可用于读取响应,如果需要,还可将部分响应缓冲到临时文件。默认情况下,大小由proxy_buffer_size和proxy_buffers指令设置的两个缓冲区的大小限制。官方文档只说了受proxy_buffer_size和proxy_buffers的限制,但没有说具体如何限制,经过尝试可以看到限制如下:要大于等于proxy_buffer_size并且要大于等于proxy_buffers中一个size。要小于proxy_buffers总大小减去一个size的值。
proxy_busy_buffers_size >= proxy_buffer_size && proxy_busy_buffers_size >= proxy_buffers_one_size && proxy_busy_buffers_size < proxy_buffers_one_size * (n-1)
-bash-4.2$ ./nginx -t
nginx: [emerg] "proxy_busy_buffers_size" must be equal to or greater than the maximum of the value of "proxy_buffer_size" and one of the "proxy_buffers" in /home/tong/nginx/conf/nginx.conf:125
nginx: configuration file /home/tong/nginx/conf/nginx.conf test failed
-bash-4.2$ ./nginx -t
nginx: [emerg] "proxy_busy_buffers_size" must be less than the size of all "proxy_buffers" minus one buffer in /home/tong/nginx/conf/nginx.conf:125
nginx: configuration file /home/tong/nginx/conf/nginx.conf test failed
-bash-4.2$
上述三个配置可以配置在http, server, location块中,根据自己需要配置。
修改配置如下:

修改配置完成后,先检查配置文件语法是否有误:
./nginx -t
nginx: the configuration file /home/tong/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /home/tong/nginx/conf/nginx.conf test is successful
语法无误则重新加载使配置文件生效
./nginx -s reload

浙公网安备 33010602011771号