我有一台运行nginx的服务器,它将请求转发到php-fpm 5.5版。 Fpm配置了300个静态工作者。
今天,发生了502错误的网关错误。 Nginx错误日志显示upstream timed out (110: Connection timed out) while reading response header from upstream
,而php慢日志显示curl_exec需要时间(curl已配置为3秒超时)。
我用kill -USR2 `pgrep -f 'fpm.+master'`
重新启动fpm之后,情况恢复正常了好几个小时。
现在我想知道为什么重新加载fpm可以解决此问题?
超时是否由太多请求引起?似乎Nginx已与fpm连接,但fpm在预期时间内没有响应。甚至无法到达fpm的新请求会发生什么?
超时是否是由等待卷发的fpm工人引起的?如果是这样,则意味着所有新工作人员将再次阻塞以处理这些请求,但是重新加载它无济于事。