在linux中访问网站提示“Nginx 502 bad gateway”错误如何处理?

问题原因

“Nginx 502 Bad Gateway”错误表示访问请求的php-cgi进程已经开始执行,但是由于读取资源失败等原因没有执行完毕,导致php-cgi进程终止。

常见的问题原因如下:

解决方案

您可以参考如下操作进行逐一排查。

说明

本文中/usr/local/php/etc/php-fpm.conf/usr/local/php/etc/php.ini/etc/nginx.conf等配置文件需要根据安装环境不同来更换路径,请以您的实际部署安装的软件路径为准。

磁盘空间不足

如果访问网站时,直接提示“Nginx 502 Bad Gateway”错误,可能是ECS实例的磁盘空间不足导致。您需要执行如下步骤进行排查:

  1. 远程登录ECS实例。具体操作,请参见连接方式概述。
  2. 执行df -h命令,查看是否磁盘空间是否充足。
    • 如果磁盘空间充足,则该问题不是由于磁盘空间问题导致。
    • 如果磁盘空间不足,则您需要扩容
    df -h

php-cgi进程数不够用

如果在已安装Nginx且可以正常访问网站的环境中,运行一段时间才后出现“Nginx 502 Bad Gateway”错误,则可能是php-cgi进程数不够用导致。

此时,您需要修改/usr/local/php/etc/php-fpm.conf配置文件,将文件中pm.max_children参数的值调高,即增加php-cgi进程数。

20230119182959

PHP执行超时

如果访问网站时,直接提示“Nginx 502 Bad Gateway”错误,可能是PHP执行超时导致。

此时,您需要修改/usr/local/php/etc/php.ini配置文件,将文件中max_execution_time参数的值改为300。如下图所示,您需要将该参数的值从30修改为300

20230119182518

php-cgi进程异常中断

如果访问网站时,直接提示“Nginx 502 Bad Gateway”错误,可能是php-cgi进程异常中断导致。您需要执行如下步骤进行法排查:

  1. 远程登录
  2. 依次执行如下命令,查看php fastcgi的进程数和pm.max_children参数的值。netstat -anop | grep php-cgi | wc -l netstat -anpo | grep php-fpm | wc -l
  3. 执行如下命令,查看当前进程。ps aux | grep php-fpm 回显示例如下,查看fastcgi、php-fpm的进程数。如果进程数大于或等于5个,则表示需要增加进程数。在linux中访问网站提示“Nginx 502 bad gateway”错误如何处理?
  4. 修改/usr/local/php/etc/php-fpm.conf配置文件中的相关参数。
    • pm.max_children参数的值修改为5,表示支持5个进程。说明pm.max_children最多支持设置5个进程。按照每个进程20 MB内存,最多支持100 MB,即资源消耗时间为1分钟。如果pm.max_children增多,则php-cgi的进程增多,进程处理速度就会加快、排队的请求就会变少。但是设置pm.max_children也需要根据服务器的性能进行设定,一台服务器正常情况下,每一个php-cgi进程所耗费的内存在20 MB左右,您需要根据实际购买的服务器内存来决定pm.max_children的值。在linux中访问网站提示“Nginx 502 bad gateway”错误如何处理?
    • request_terminate_timeout参数的值修改为60,表示内存回收机制为1分钟(60秒)。说明request_terminate_timeout的值可以根据服务器的性能进行设定,常见设置为60秒。通常服务器性能越好,您可以设置的值越高。在linux中访问网站提示“Nginx 502 bad gateway”错误如何处理?
  5. 如果PHP进程的执行时间超过了Nginx的等待时间,则您需要适当增加Nginx的/etc/nginx.conf配置文件中fastcgi_connect_timeoutfastcgi_send_timeoutfastcgi_read_timeout参数的timeout时间,您需要修改的参数如下:在linux中访问网站提示“Nginx 502 bad gateway”错误如何处理?

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/10119

(0)
凯影的头像凯影
上一篇 2023年11月16日 下午2:24
下一篇 2023年11月17日 下午2:29

相关推荐

  • docker搭建ELK日志平台

    ELK 是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。 由于Logstash占用的资源比较大,我们选择filebeat这个轻量级的日志收集工具来代替Logstash 一、安装ELK 首先,我们通过docker-compose来安装单机版elasticsearch和kibana。 创建docker…

    2023年1月13日
    1.3K00
  • 通过配置hosts.allow和hosts.deny限制登陆

    我们通常只对管理员开放SSH登录,那我们就可以禁用不必要的IP,而只开放管理员可能使用到的IP段。 /etc/hosts.allow和/etc/hosts.deny两个文件是控制远程访问设置的,通过他可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务。 我们通常只对管理员开放SSH登录,那我们就可以禁用不必要的IP,而只开放管理员可能使用到的I…

    2022年11月15日
    1.6K00
  • Centos7系统如何查看系统日志

    Systemd是Linux系统工具,Systemd拥有强大的解决与系统日志记录功能-systemd-journald。日志目录一般是在/var/log/journal,记录的是二进制文件,我们可以通过journalctl进行查看。 日志的配置文件是/etc/systemd/journald.conf。 常用的操作有哪些呢 显示所有日志 查看系统本次启动只有的…

    2022年6月15日
    2.7K00
  • Linux安装青龙面板 稳定版超级详细

    一.安装docker容器 1.工具安装 复制所有代码然后直接右键粘贴进去 中间过程输入y 回车 yum install docker-io –y 这里输入y 安装成功之后是这个样子 输入以下代码回车 systemctl start docker 复制粘贴下面命令回车 docker ps 如果显示下图 即为成功 二.安装青龙面板 1.安装面板 (想改青龙面板端…

    2022年6月22日
    3.1K00
  • PVE8开启vgpu显卡虚拟化(基于Tesla P4)

    Tesla系列显卡真是垃圾佬的福音,很久以上上万的卡,现在几百块就能收到,不仅可以炼丹,还可以玩游戏,甚至可以给PVE用作vgpu,来实现云桌面,云游戏。博主先后买过P40和P4,面对250W功耗的24G显存的P40,显然它更适合炼丹,P4 TDP 75W,1060的性能表现,它的最佳用途其实不是个人桌面的游戏显卡,而是虚拟化云主机使用,而搭配上一台低功耗主…

    2024年2月26日
    2.3K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信