connect() to unix:/var/run/php/php7.4-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream
错误消息表明由于资源不可用,与 PHP-FPM 套接字的连接失败。这可能是由于对服务器的请求数量过多,超出了服务器可以处理的最大连接数。
尝试增加服务器可以处理的最大连接数
可以通过修改文件中的pm.max_children和pm.max_requests设置来实现此目的php-fpm.conf。
还可以尝试增加pm.max_requests设置来限制每个子进程在终止之前可以处理的请求数。
进行这些更改后,需要重新启动 PHP-FPM 服务以使更改生效。
以下是如何将设置增加到 50 的示例pm.max_children:
/usr/local/php74/etc/php-fpm.d
pm.max_children = 50
pm.max_requests = 4000
/etc/init.d/php-fpm restart
套接字的最大连接数已超出
这种情况的发生也有可能因为操作系统拒绝了 nginx 连接 Unix 套接字的尝试。原因可能是套接字的最大连接数已超出,或者套接字的最大未处理连接数已达到。
要检查限制,请运行:
sysctl net.core
net.core.somaxconn = 128
net.core.netdev_max_backlog = 200
出现该错误的原因是最大连接数为128,而最大未处理连接数为200。
要更改限制,请将以下行更改为 /etc/sysctl.conf 文件:
net.core.somaxconn = 20000
net.core.netdev_max_backlog = 65535
重新启动 php-fpm:
/etc/init.d/php-fpm restart