nginx - php5-fpm崩溃

标签 nginx crash webserver debian php

我有一个运行debian和php5-fpm的网络服务器(nginx)似乎随机播放,如果我调用php文件,它将以504错误的网关答复。

当它处于崩溃状态并且我执行sudo /etc/init.d/php5-fpm时,它说它正在运行,但是在我执行sudo /etc/init.d/php5-之前,它仍然会提供504错误的网关。 fpm

我在想这可能与我的一个php文件有关,该文件处于无限循环中,直到发生某个事件(mysql数据库中的更改)或直到它超时为止。我不知道这通常是否是件好事,还是我应该在发生超时之前退出循环。

感谢您的建议!

最佳答案

首先查看nginx error.log中的实际错误。我不认为PHP会崩溃,只是您的循环正在使用所有可用的php-fpm进程,因此没有免费的服务来满足nginx的下一个请求。那应该在日志中产生超时错误(nginx将等待一段时间以等待可用的php-fpm进程)。

关于第二个问题。您不应该为此使用无限循环。而且,如果这样做,请在循环内插入sleep()命令-否则,您将使该循环的CPU以及查询数据库过载。

另外,我想在该循环中有一个PHP进程等待事件就足够了。在这种情况下,请使用某种类型的信号量(db中的文件或信息)让其他进程知道已经在等待该事件。否则,您将永远吃光所有可用的PHP进程。

关于nginx - php5-fpm崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14541737/

相关文章:

ruby-on-rails - 1and1.com 到 Heroku

node.js - Nginx:[警告] 0.0.0.0:80 上的冲突服务器名称 "non.com",已忽略

java - 如何解决 Intent 崩溃问题?

c++ - 我可以从崩溃签名获取源代码(Windows崩溃报告)

iphone - 在没有 NSURLConnections 的函数中 [NSURLConnection releaseDelegate] 崩溃,我该如何应对?

java - 在独立 Tomcat 服务器上,可以设置多少更高的值 - maxThreads 和 maxConnections?

Docker-compose 来自守护进程 : manifest for nginx:1. 15-alphine 的错误响应未找到: list 未知: list 未知

php - 通过 Docker 容器和 Nginx Web 服务器在 Laravel 中获取用户的 IP 地址

django - 无法通过 AWS EC2 实例上的 Gunicorn 访问 Django 默认应用程序

C Web 服务器 - 打印传入数据?