nginx 错误502 upstream sent too big header while reading response header from upstream

Posted Drutor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx 错误502 upstream sent too big header while reading response header from upstream相关的知识,希望对你有一定的参考价值。

查看nginx的错误日志,得到以下错误信息:
upstream sent too big header while reading response header from upstream
按字面意思理解应该是upstream负载均衡的模块转发的header头超出限制值了,查看配置文件中的相关配置,并搜索相关信息。

网上同类型的错误原因,说是cookie携带的header太多了,让你设置:

fastcgi_buffer_size 128k;
fastcgi_buffers 8 128k;

优化这些配置值,其中fastcgi_buffers 8 128k 这句,fastcgi_buffers 32 32k 这样更好,内存是整块分配和释放的,减少单位k数能尽可能利用。

在http配置段设置
{
                proxy_buffer_size  128k;

                proxy_buffers   32 32k;

                proxy_busy_buffers_size 128k;
        
        proxy_temp_file_write_size 128k;
}
proxy_temp_file_write_size 这个选项的值不能小于proxy_buffer_size,否则报错。
优化后,错误日志中没有继续出现报错。
另外,如果你用nginx做负载均衡的话,改了上述参数没用的的话,在转发的配置上,修改proxy_buffer_size、proxy_buffers、proxy_busy_buffers_size的值。
配置示例:
location / {

                proxy_buffer_size  128k;

                proxy_buffers   32 32k;

                proxy_busy_buffers_size 128k;

                add_header X-Static transfer;

                proxy_redirect off;

                proxy_set_header Host $host;

                proxy_set_header X-Real-IP  $remote_addr;

                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                proxy_pass http://backend;    

        }

如果需要后端phpCGI的设置:
location ~ .php$ {

       fastcgi_buffer_size 128k;

       fastcgi_buffers 32 32k;

       include /etc/nginx/fastcgi_params;

       fastcgi_pass   127.0.0.1:9000;

       fastcgi_index index.php;

       fastcgi_param SCRIPT_FILENAME /host/web/$fastcgi_script_name;

    }

总结原因:
proxy是nginx作为client转发时使用的,如果header过大,超出了默认的1k,就会引发上述的upstream sent too big header。
fastcgi_* 可以理解成nginx接受client请求时的响应使用的。

转载自

原文:https://blog.csdn.net/huwenb/article/details/11898953 

 

















以上是关于nginx 错误502 upstream sent too big header while reading response header from upstream的主要内容,如果未能解决你的问题,请参考以下文章

错误502 upstream sent too big header

修复Nginx报错:upstream sent too big header while reading response header from upstream

502 bad gateway nginx怎么解决

Nginx - upstream sent invalid chunked response while reading upstream 异常问题

压测引起的 nginx报错 502 no live upstreams while connecting to upstream解决

nginx 502