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 Server

我需要从 80 端口直接访问这个服务,所以我使用了 Nginx 的反向代理

而至于 PHP ,其实这个错误就是与它有关

查找错误原因

当我使用这个 Node Server 的时候,返回了一个 502 Bad Gateway 错误

查看网络请求,也没有什么错误,接着就查看了 Nginx error log 里的错误信息

[error] 17028#0: *111 upstream prematurely closed connection while reading response header from upstream

好吧,并不是什么明显的错误提示,只好到 Google 查查看了

查了一番似乎也挺多人遇到这个问题的,但是解决问题的方法好像都不一样。。。

有的说是 keepalive_timeout 值太小了 (这个值我根据服务配置,已经改成 600,感觉不太可能),还有说重启 Nginx 就行了 (尝试过。),等等。。。

当然也有让我眼前一亮的答案,那就是 重启 php-fpm ,果断尝试一下

果然。。。启动报错了,提示大概意思是端口被占用了,瞬间感觉好像找对了突破口

解决错误

看了一下端口才发现,原来是之前已经开启了另外一个 Node Server 占用了 php-fpm 默认的 9000 端口

简直是自己坑自己!

因为服务的端口不能改,要和其它同事的统一,所以我把 php-fpm 的端口改成了 9999

PHP 是使用 brew 安装的,配置路径为: /usr/local/etc/php/7.0/php-fpm.d/www.conf

listen = 127.0.0.1:9999

然后重启 php-fpm 就 OK 了

时间: 2024-10-11 22:33:34

nginx error: upstream prematurely closed connection while reading response header from upstream的相关文章

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"这么一条错误日志,翻译过来其实就是上游服务过早的关闭了连接,意思很清楚,但是为什么会出现这种情况呢.而且是在业务低峰出现这种情况(也只是小概率的出现),在业务高

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:

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

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 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:    

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:

反向代理 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

mysql登陆时出现ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

有4到5天没开mysql,这天晚上打=打开phpstudy,想进去mysql练习练习,结果丢给我这个 ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0 错误2013 (HY000):读取初始通信包时MySQL服务器连接丢失,系统错误0 windows进cmd命令行,输入server.msc,然后找到mysql的服务,重启一下就