如果ps 命令的输出没有显示任何 PHP-FPM 的主进程或池进程,那就是根本没启动PHP-FPM服务,需要让 PHP-FPM 运行, 来解决 502 错误。 应该使用 systemd 将 PHP-FPM 作为一项服务来运行。这可以使你的 PHP 应用更加可靠和可扩展,因为 PHP-FPM 守护程序会在服务器启动或新实例启动时自动开始为你的 PHP 应用服务。
以上代码的作用设置了php代码本身可以更长的时间处理任务并且不报致命错误,但不代表程序一定无限制的可以执行这么久。因为Nginx与PHP进程通信方式是检测到.php的文件交给php-fpm进程处理,php-fpm是一个fastcgi进程管理器,php-fpm一旦超时,php-fpm会强制终结掉这个进程,这就是报502的原因。 这段代码又无法控制nginx fa...
nginx出现502有很多原因,但大部分原因可以归结为资源数量不够用,也就是说后端php-fpm处理有问题,nginx将正确的客户端请求发给了后端的php-fpm进程,但是因为php-fpm进程的问题导致不能正确解析php代码,最终返回给了客户端502错误。 服务器出现502的原因是连接超时 我们向服务器发送请求 由于服务器当前链接太多,导致服务...
因此 PHP-FPM 作为 PHP-CGI 的管理器,提供了这么一项监控功能,对请求达到指定次数的 PHP-CGI 进程进行重启,保证内存使用量不增长。 正是因为这个机制,在高并发的站点中,经常导致 502 错误,我猜测原因是 PHP-FPM 对从 NGINX 过来的请求队列没处理好。不过我目前用的还是 PHP 5.3.2,不知道在PHP5.3.3 中是否...
我们的项目就是php执行时间设置过短导致的,对于这种情况,可以先适当增大php的执行时间,先保证清除502,优化的事情毕竟要花更多的时间。 控制php执行时间的选项有两个,在php.ini中 max_execution_time 和php-fpm中 request_terminate_timeout,其中 request_terminate_timeout 可以覆盖 max_execution_time,所以如果不想...
最后,php-fpm.conf 下的 error_log 指令在我看来没有任何的实际用处,如果读者有知道的,欢迎指导。 (3)定位问题 知道了nginx通过本地socket方式连接php-fpm遇到权限问题,定位到了listen.owner和 listen.group指令。 产生问题的原因就是nginx进程的属主和php-fpm属主权限不一样,在发生502问题的时候,nginx属主是www...
nginx出现502有很多原因,但大部分原因可以归结为资源数量不够用,也就是说后端php-fpm处理有问题,nginx将正确的客户端请求发给了后端的php-fpm进程,但是因为php-fpm进程的问题导致不能正确解析php代码,最终返回给了客户端502错误。 服务器出现502的原因是连接超时我们向服务器发送请求由于服务器当前链接太多,导致服务器...
我们的项目就是php执行时间设置过短导致的,对于这种情况,可以先适当增大php的执行时间,先保证清除502,优化的事情毕竟要花更多的时间。 控制php执行时间的选项有两个,在php.ini中 max_execution_time 和php-fpm中 request_terminate_timeout,其中 request_terminate_timeout 可以覆盖 max_execution_time,所以如果不想...
nginx+php 出现502 bad gateway,一般这都不是nginx的问题,而是由于 fastcgi或者php的问题导致的,常见的有以下几种。 1.php-fpm进程挂掉或者重启,大家可以service php-fpm stop 然后再打开php页面就返回502 nginx错误日志: *153514 connect() to unix:/dev/shm/php-cgi.sock failed (2: No such file or direc...
前置条件: 适用于常规请求都没问题,但是执行某些php脚本需要超过一分钟的情况下的502/504,并不是任何请求都502/504的情况(这说明php-fpm或者nginx配置...