连接超时后,Nginx PHP-FPM停止

我有一个服务器与Nginx和PHP-FPM为单个Web应用程序。 一切正常,直到我请求一个超过60秒的页面。 然后PHP停止响应任何请求。

产生这个问题的步骤是:

1:我提出一个要求php / mysql超过60秒的返回。 在这一点上,一切仍然有效。 所有额外的stream量仍然正常工作。

2:然后我在UI中发出另一个请求(更改页面)。

3:现在所有的PHPstream量都停止了 – PHP不再提供内容,所有的请求都会等待,直到超时,Nginx返回“发生错误”。 日志显示... upstream timed out (110: Connection timed out) while reading response header from upstream ...

Web应用程序是AngularJS向PHP发出AJAX请求。 我正在testingChrome中的用户界面,并使用Safari请求testing页面,因此,Chrome并不是一件愚蠢的事情,而是在等待一个请求。

重新启动php-fpm修复了这个问题。 我已经尝试设置紧急重置,并没有效果。 日志文件/var/log/php5-fpm.log是空的。

PHP-fpm.conf

 [global] pid = /var/run/php5-fpm.pid error_log = /var/log/php5-fpm.log include=/etc/php5/fpm/pool.d/*.conf 

www.conf

 [www] user = www-data group = www-data listen = /var/run/php5-fpm.sock listen.owner = www-data listen.group = www-data pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 chdir = / catch_workers_output = yes 

nginx网站configuration

 ... location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } ... 

问题是pm.max_children太低(也许200更好)。 也build议我把pm改成ondemand而不是dynamic的。 并将pm.process_idle_timeout设置为1,以便将它们循环出来。

问题是阿贾克斯请求占用了5个可用的工人,所以后来的请求不能去任何地方。