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

 

原文地址:https://www.cnblogs.com/rutor/p/9876835.html

时间: 2024-10-28 11:35:43

nginx 错误502 upstream sent too big header while reading response header from upstream的相关文章

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

原本的设置是 proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; 在这种配置下,使用fiddler进行抓包分析,发现只要请求的header的尺寸大于4378字节的时候就报502,当header在4377及以下的时候就正常了. 将配置更改为: proxy_buffer_size 64k;   proxy_buffers   32 32k;   proxy_busy_buffers_size 128k; 之后

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

在 nginx.conf 的http段,加入下面的配置: proxy_buffer_size 128k; proxy_buffers 32 32k; proxy_busy_buffers_size 128k; 重启后一般就可以解决,如果还是报502,再在host配置的php段加入下面配置: fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; 重启nginx即可. 原文地址:https:

nginx error: upstream prematurely closed connection while reading response header from upstream

本篇文章由:http://xinpure.com/nginx-error-upstream-prematurely-closed-connection-while-reading-response-header-from-upstream/ 环境描述 Nginx 版本 1.10.2 PHP 版本 7.0.12 Node 版本 5.9.0 本文是想讲一个 Nginx 的错误,为啥还要提及 PHP 和 Node 的版本呢?容我先还原一下应用场景 首先就是我有一个绑定在 3000 端口的 Node S

Nginx" upstream prematurely closed connection while reading response header from upstream"问题排查

问题背景 我们这边是一个基于Nginx的API网关(以下标记为A),最近两天有调用方反馈,偶尔会出现502错误,我们从Nginx的error日志里看,就会发现有" upstream prematurely closed connection while reading response header from upstream"这么一条错误日志,翻译过来其实就是上游服务过早的关闭了连接,意思很清楚,但是为什么会出现这种情况呢.而且是在业务低峰出现这种情况(也只是小概率的出现),在业务高

xdebug 一直报错 upstream timed out (110: Connection timed out) while reading response header from upstream

本地主机(Windows环境192.168.66.1)访问虚拟机(192.168.66.139)里面的搭建的php环境(系统centos6.5版本,php版本是5.5.30 ,xdebug 2.4.0),通过命令行pecl install xdebug安装的xdebug, 在php.ini配置xdebug [Xdebug]zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/xdebug.soxdeb

recv() failed (104: Connection reset by peer) while reading response header from upstream

场景: 为了得到用户在线等信息,在客户端做了个ajax轮训: 于是问题就来了, 日志文件 [[email protected] web]# tail -f /data/log/nginx_error.log 2017/06/16 19:20:28 [error] 230555#0: *10228041 recv() failed (104: Connection reset by peer) while reading response header from upstream,client:

FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream,

在对nginx添加fastCGI的支持后,然后进行php页面验证,发现页面识别不到,不清楚什么情况,随后google了下,原来是Nginx内置变量问题惹的祸. 1.平台介绍: 1 2 3 4 5 6 OS Version:        CentOS release 6.4 (Final) Nginx Version:     nginx version: nginx/1.4.3 PHP Version:       PHP 5.5.5 (fpm-fcgi) Mysql Version:    

反向代理 27833 recv() failed (104: Connection reset by peer) while reading response header from upstream错误

原因就是请求的头文件过大导致502错误 解决方法就是提高头的缓存 http{ client_header_buffer_size 5m; location / { proxy_buffer_size 128k; proxy_busy_buffers_size 192k; proxy_buffers 4 192k; } } 原文地址:https://www.cnblogs.com/chenkg/p/8364579.html

错误502 upstream sent too big header

nginx log 错误502 upstream sent too big header while reading response header from upstream cookies的值超出了范围我是说 看看了一下日志 错误502 upstream sent too big header while reading response header from upstream sudo gedit /var/log/nginx/error.log 查看错误日志 upstream sent