Nginx PHP-FPM停止工作,连接中留有打开的套接字

rjee0c15  于 2022-11-02  发布在  Nginx
关注(0)|答案(1)|浏览(125)

我有这个反复发生的问题与Nginx约一天一次,约两次在高流量负载.修复很容易,重新启动服务器,但当错误发生时,Nginx完全停止工作.我有一个NGINX PHP-FPM设置.
问题始于:

020/09/27 09:57:27 [error] 38#38: *430982 upstream timed out (110: Connection timed out) while connecting to upstream, client: x.x.x.x, server: example.com, request: "POST /api/sessions/wri

然后它进展成:

2020/09/27 10:03:22 [alert] 40#40: *431277 open socket #18 left in connection 51
2020/09/27 10:03:22 [alert] 38#38: *431298 open socket #34 left in connection 166
2020/09/27 10:03:22 [alert] 40#40: *431288 open socket #28 left in connection 59
2020/09/27 10:03:22 [alert] 38#38: *431296 open socket #32 left in connection 169
2020/09/27 10:03:22 [alert] 38#38: *431257 open socket #36 left in connection 177
2020/09/27 10:03:22 [alert] 38#38: *431291 open socket #23 left in connection 178
2020/09/27 10:03:22 [alert] 38#38: *431253 open socket #27 left in connection 188
2020/09/27 10:03:22 [alert] 38#38: *431300 open socket #31 left in connection 197
2020/09/27 10:03:22 [alert] 38#38: *431312 open socket #12 left in connection 204
2020/09/27 10:03:22 [alert] 38#38: *431259 open socket #38 left in connection 206
2020/09/27 10:03:22 [alert] 37#37: aborting
2020/09/27 10:03:22 [alert] 38#38: aborting
2020/09/27 10:03:22 [alert] 40#40: aborting
2020/09/27 10:03:23 [warn] 21568#21568: 8096 worker_connections exceed open file resource limit: 1024
2020/09/27 10:08:24 [warn] 21574#21574: *636 upstream server temporarily disabled while connecting to upstream,

现在GET请求仍然可以工作。所以如果我去网站,它会加载。但是任何POST,PUT或DELETE都会失败,所以最终用户除了浏览什么都不能做。
对于为什么会发生这种情况有什么想法吗?有没有一种健康检查可以用来检测这些问题?

ahy6op9u

ahy6op9u1#

可能是Nginx进程打开的文件太多了。您可以通过阅读以下文章来增加这个限制:How to Increase Number of Open Files Limit in Linux
要更改此设置,您需要具有root权限,并执行以下操作:
1.打开/etc/security/limits.conf文件:vi /etc/security/limits.conf
1.将这些行附加到文件末尾:


## Example hard limit for max opened files

* hard    nofile    10240

## Example soft limit for max opened files

* soft    nofile    10240

1.保存所有更改并重新启动服务器/VPS以应用新设置。

注意:数字10240是一个进程可以打开的最大文件数。请根据需要更改此值。

相关问题