Windows bash NGINX未成功完成PHP-FPM操作

时间:2018-06-24 22:24:19

标签: php windows ubuntu nginx windows-subsystem-for-linux

这是一个非常奇怪的问题...

操作系统: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只是挂起等待它被视为完成,因此从未发生。页面错误。我一直在搜寻可以在网上找到的所有半类似的解决方案,但似乎没有什么是我的相同问题;他们的方法对我也不起作用。

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

我通过将以下内容添加到/etc/nginx/nginx.conf中的http块来解决此问题:

fastcgi_buffering off;