Nginx PHP-FPM和curl将后续浏览器挂起到服务器请求

时间:2016-07-04 12:13:37

标签: php curl nginx

我有php-fpm&我的服务器上安装了nginx堆栈。

我正在运行一个JS应用程序,该应用程序使用curl触发内部连接到第三方服务的AJAX请求。这项服务需要很长时间才能响应大约150秒。

现在,当我在另一个浏览器选项卡上连接到同一页面时,它甚至不会在触发ajax请求的页面上返回javascript代码。基本上所有后续请求都会一直加载,直到curl返回响应或超时为止。

这里,我将proxy_read_timeout设置为300秒。

我想知道为什么nginx持有资源而不服务其他客户端。

1 个答案:

答案 0 :(得分:2)

问题是由于PHP会话锁定。当我以前发出某个请求时,PHP用于锁定会话文件,并且只在请求完成后才会释放。

为避免这种情况,您可以使用session_write_close()。就我而言,我实现了redis会话。

问题解决了!!!