这是一个非常奇怪的问题...
操作系统:Windows 10
Env:Ubuntu Bash
Nginx:nginx / 1.10.3(Ubuntu)
的PHP:PHP 7.2.1-1 + ubuntu16.04.1 + deb.sury.org + 1
当我从CLI直接对PHP-FPM进行测试时,响应就很好。
喜欢...
SCRIPT_NAME = /状态SCRIPT_FILENAME = /状态REQUEST_METHOD = GET cgi-fcgi -bind -connect /run/php/php7.2-fpm.sock
连接到此状态系统https://easyengine.io/tutorials/php/fpm-status-page/
在Nginx启动时,它会在日志中给出这些错误
2018/06/24 15:08:45 [警报] 6772#6772:* 2打开了连接4中剩余的#15插座
2018/06/24 15:08:45 [警报] 6772#6772:正在中止`
但是,如果我连接到http://127.0.0.1/status
对其进行测试(或任何本地URL),则该请求将挂起,直到502为止。仅具有这些标题:
连接:保持活动状态
内容编码:gzip
内容类型:text / html; charset = UTF-8
日期:2018年6月24日,星期日,格林尼治标准时间
伺服器:nginx / 1.10.3(Ubuntu)
传输编码:分块
此错误显示在nginx日志中
2018/06/24 15:09:48 [错误] 6834#6834:* 1上游超时(110: 读取上游,客户端:127.0.0.1,连接超时) 服务器:_,请求:“ GET / status HTTP / 1.1”,上游: “ fastcgi:// unix:/run/php/php7.2-fpm.sock:”,主机:“ 127.0.0.1”
但是,如果我在挂起PHP-FPM服务时将其杀死,那么响应会完美地显示在浏览器中。就像直接CLI请求一样。
其余的nginx配置是默认设置。我正在为fpm使用袜子,而不是ip:port。 ip:port设置甚至无法解决许多其他问题。
因此显然FPM运行正常...但是由于某些原因,Nginx特别无法确定响应何时完成发送,而Nginx只是挂起等待它被视为完成,因此从未发生。页面错误。我一直在搜寻可以在网上找到的所有半类似的解决方案,但似乎没有什么是我的相同问题;他们的方法对我也不起作用。
有什么想法吗?谢谢!
答案 0 :(得分:1)
我通过将以下内容添加到/etc/nginx/nginx.conf中的http块来解决此问题:
fastcgi_buffering off;