V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
awanganddong
V2EX  ›  程序员

nginx 报这个错误, connect() to unix:/run/ PHP /php7.2-fpm.sock failed (11: Resource temporarily unavailable)

  •  1
     
  •   awanganddong · 2022-12-07 14:52:37 +08:00 · 1043 次点击
    这是一个创建于 704 天前的主题,其中的信息可能已经有所发展或是发生改变。
    后台系统偶尔会出现 502 ,收集 nginx 错误日志如下
    nginx 报这个错误,connect() to unix:/run/php/php7.2-fpm.sock failed (11: Resource temporarily unavailable)
    
    
    所以想请问这种问题如何定位。
    
    参考这个帖子配置了 linux 相关参数,但是还是无效。所以不想请问该如何定位
    https://serverfault.com/questions/843460/php-fpm-sock-failed-11-resource-temporarily-unavailable-while-connecting-to-u
    
    13 条回复    2022-12-08 16:51:42 +08:00
    meshell
        1
    meshell  
       2022-12-07 14:55:20 +08:00
    配置下 fpm 的 ulimit 配高点
    Twnysta
        2
    Twnysta  
       2022-12-07 14:55:31 +08:00
    要不你 fpm 用端口模式试试吧
    Aresrun
        3
    Aresrun  
       2022-12-07 14:56:43 +08:00
    问了下 ChatGPT:这个错误通常表示 PHP FastCGI 进程管理器( FPM )服务没有运行或没有侦听您正在尝试连接的套接字。要解决此问题,可以尝试以下操作:

    确保 PHP FPM 服务已正确安装并已启动。
    检查您正在尝试连接的套接字路径是否正确。
    检查 PHP FPM 配置文件中的 "listen" 选项是否正确配置。
    如果您的 PHP FPM 进程正在运行,但仍然无法连接,则可能需要重启 PHP FPM 服务。
    如果以上步骤都不起作用,则可能需要检查您的系统日志以获取更多信息,并根据错误消息提供的指示进行进一步调试。
    awanganddong
        4
    awanganddong  
    OP
       2022-12-07 14:57:04 +08:00
    这是 linux 配置
    ```
    kernel.sysrq = 1
    net.ipv6.conf.all.disable_ipv6 = 0
    net.ipv6.conf.default.disable_ipv6 = 0
    net.ipv6.conf.lo.disable_ipv6 = 0
    kernel.printk = 5
    net.core.somaxconn = 2048
    net.core.netdev_max_backlog = 65535
    ````
    awanganddong
        5
    awanganddong  
    OP
       2022-12-07 15:00:27 +08:00
    ```
    ulimit -s
    8192

    ```
    不知道什么引起这个问题的
    singerll
        6
    singerll  
       2022-12-07 15:03:05 +08:00
    php-fpm 程序没有启动吧,试下 systemctl start php7.2-fpm
    meshell
        7
    meshell  
       2022-12-07 15:04:35 +08:00
    @awanganddong 设置了系统的 ulimit 需要重启 fpm
    awanganddong
        8
    awanganddong  
    OP
       2022-12-07 15:04:49 +08:00
    这个是偶尔出现这个问题。
    我把 php-fpm 配置贴出来
    godgrp
        9
    godgrp  
       2022-12-07 15:06:39 +08:00
    如果是 systemd 起的 php 服务,设置 PrivateTmp=false ,否则可能导致 nginx 里配置的 sock 文件路径找不到
    awanganddong
        10
    awanganddong  
    OP
       2022-12-07 15:08:06 +08:00
    pm = static
    pm.max_children = 100
    pm.start_servers = 50
    pm.min_spare_servers = 50
    pm.max_spare_servers = 50

    或者说我该怎么排查问题,这个仅仅是后台一个查询接口
    awanganddong
        11
    awanganddong  
    OP
       2022-12-07 16:44:39 +08:00
    我发现问题了,在压测其他项目,所以这个后台挂了。
    julyclyde
        12
    julyclyde  
       2022-12-08 09:31:14 +08:00
    @meshell 首先,不存在“系统的” ulimit 这个概念
    这东西是由高级权限的进程设置好之后,一层一层继承下来的
    a1lenyang
        13
    a1lenyang  
       2022-12-08 16:51:42 +08:00
    chatgpt:这个错误通常表示 PHP-FPM 服务不可用或者 PHP-FPM 服务没有运行。我们可以尝试重新启动 PHP-FPM 服务来解决这个问题。

    首先,请运行以下命令来检查 PHP-FPM 服务的状态:

    ```
    systemctl status php7.2-fpm
    ```
    如果 PHP-FPM 服务处于停止状态,则可以尝试运行以下命令来启动 PHP-FPM 服务:

    ```
    systemctl start php7.2-fpm
    ```
    如果 PHP-FPM 服务已经启动,但仍然出现这个错误,则可能需要重启 PHP-FPM 服务。你可以运行以下命令来重启 PHP-FPM 服务:

    ```
    systemctl restart php7.2-fpm
    ```
    如果问题依然存在,则可能需要检查 PHP-FPM 的配置文件(通常位于 /etc/php/7.2/fpm/php-fpm.conf ),确保它正确配置并且没有任何错误。如果在配置文件中发现错误,则需要修改它并重启 PHP-FPM 服务。

    此外,你也可以尝试检查 Nginx 的错误日志(通常位于 /var/log/nginx/error.log ),以查找更多关于这个问题的信息。

    希望上述信息能够帮助你解决这个问题。如果还有其他问题,请再次提出。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2794 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 09:20 · PVG 17:20 · LAX 01:20 · JFK 04:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.