AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 44890
In Process
Vito Botta
Vito Botta
Asked: 2009-07-24 14:27:11 +0800 CST2009-07-24 14:27:11 +0800 CST 2009-07-24 14:27:11 +0800 CST

PHP-FPM + NGINX:PHP-CGI 进程在空闲一段时间后死亡,然后 502 bad gateway 和需要手动重启

  • 772

我目前正在设置一个 VPS(使用 VPS.NET),我将使用它来托管博客和其他一些东西。我已经安装了 nginx,并用 php-fpm 修补了 php (5.2.8)。

除了一个烦人的问题外,一切都很好(而且非常快!):因为该网站目前除了我的以外没有其他流量,一段时间后它一直处于空闲状态,所有 php-cgi 进程都死了。一旦我尝试访问该网站,nginx 就会返回一个不错的“502 bad gateway”,并且要修复,我必须手动重新启动 php-fpm 以使网站再次运行。这是为什么?我已经看到这在某种程度上是一个常见问题,但是在我的业余时间寻找解决方案几天后,我发现没有一个适合我。

有什么建议么?提前致谢

php fastcgi nginx php-fpm
  • 2 2 个回答
  • 7716 Views

2 个回答

  • Voted
  1. James F
    2009-07-25T01:40:17+08:002009-07-25T01:40:17+08:00

    我正在运行一个非常相似的设置(nginx 0.7.61,php+fpm 5.2.10),我的 PHP 进程永远不会死,即使在空闲之后也是如此。

    我的 php-fpm.conf 的进程控制位如下:

    <value name="pm">
        <value name="style">static</value>
        <value name="max_children">3</value>
        <value name="apache_like">
            <value name="StartServers">20</value>
            <value name="MinSpareServers">5</value>
            <value name="MaxSpareServers">35</value>
        </value>
    </value>
    <value name="request_terminate_timeout">0s</value>
    <value name="request_slowlog_timeout">0s</value>
    <value name="slowlog">logs/slow.log</value>
    <value name="rlimit_files">1024</value>
    <value name="rlimit_core">0</value>
    <value name="chroot"></value>
    <value name="chdir"></value>
    <value name="catch_workers_output">yes</value>
    <value name="max_requests">500</value>
    

    请注意,虽然我定义了类似 apache 的位(它们是默认配置的一部分),但它们没有被使用,因为我设置了 PM 样式静态。

    您可以在全局选项部分中使用它来将日志调到调试级别:

    <value name="log_level">debug</value>
    

    看看是否有报道说它正在关闭工人。

    如果这不起作用,一个闩锁修复方法是让像 pingdom 这样的服务每 x 分钟在您的网站上点击一个 php,但我对这个软件组合的经验并不表明这应该是必需的。

    • 1
  2. David Pashley
    2009-07-25T00:08:00+08:002009-07-25T00:08:00+08:00

    不确定 PHP-FPM 与 fastcgi 模式下的标准 PHP 有何不同,但通常每个 PHP 进程在终止之前只会处理有限数量的请求。这可以防止内存泄漏随着时间的推移而累积。这非常有效,除非您只有一个 PHP 进程,在这种情况下,它会一直运行,直到完成它的请求配额,然后退出。您应该查看是否有一个进程正在运行,或者是否有多个进程。如果你有几个,那么忽略这个。如果只有一个,则需要确保在启动 PHP 之前导出 PHP_FCGI_CHILDREN 环境变量。PHP_FCGI_MAX_REQUESTS 控制每个单独进程将运行的请求数。

    • 0

相关问题

  • 使用Passenger时使用Nginx over Apache with Rails的优缺点是什么

  • 如何在 IIS 6 中免费重写 url (ala mod_rewrite)?

  • 阿帕奇的替代品

  • mod_rewrite 不转发 GET 参数

  • 更改 PHP 的默认配置设置?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve