码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-12-07 18:13:20      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:解决   查找   文章   没有   服务   str   time   开启   php   

本篇文章由: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 了

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

标签:解决   查找   文章   没有   服务   str   time   开启   php   

原文地址:http://www.cnblogs.com/xinpureZhu/p/6142183.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!