服务器报错nginx 502 Bad Gateway的原因以及解决办法

这篇具有很好参考价值的文章主要介绍了服务器报错nginx 502 Bad Gateway的原因以及解决办法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

网站页面出现502badgateway怎么办?今天我们来分析一下原因和解决办法。

一、nginx 502 Bad Gateway出现的原因:


nginx出现502多数是属于后端的问题,后期就是PHP的问题,在php服务当中,有两个参数非常的重要:max_requestst 和max_children;具体的原因必须要查看日志才可以弄明白!

服务器报错nginx 502 Bad Gateway的原因以及解决办法

1:FastCGI进程是否已经启动

ps aux|grep php

查看是否启动了php-fpm服务;

2:FastCGI worker进程数是否不够

运行linux命令:

netstat -anpo | grep “php-cgi” | wc -l

判断是否接近FastCGI进程,接近配置文件中设置的数值,表明worker进程数设置太少;

3.FastCGI执行时间过长

根据实际情况调高以下参数值

fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;

4:FastCGI Buffer不够

nginx和apache一样,有前端缓冲限制,可以调整缓冲参数

fastcgi_buffer_size 32k;
fastcgi_buffers 8 32k;

5:其它原因

出现502的情况太多了,(例如:你服务器目前的配置支撑不了你现有的业务。我有一个朋友服务器是4核8G的,经常一会出现502 Bad Gatewa,又一会正常。CPU和内存经常爆满接近100%,负载也接近4。最后,配置升级成8核16G后变就变正常了。)远远不只是博主所说的这几种!这几种只能说是最常用的吧!具体的原因一定要去查看服务器的日志;

如何通过查看日志来解决502 Bad Gateway?

二、nginx 502 bad gateway问题怎么解决?


1:查看nginx日志

既然是nginx报错,首先我们就去查看nginx的日志;执行如下命令:

vim /fujieace/nginx/logs/error.log

日志没有报什么错,一切正常,显然不是nginx出的问题;

2:查看php日志

或许不同的环境,路径或许不一同,但是很类似,继续执行linux命令:

vim /fujieace/php/var/log/php-fpm.log

结果发现有很多:如下图

服务器报错nginx 502 Bad Gateway的原因以及解决办法
WARNING: [pool www] server reached pm.max_children setting (5), consider raising it;

翻译过来就是:

警告:[池WWW服务器达到pm.max_children设置](5),考虑提高它

我们只需要修改”pm.max_children” 参数即可!

说明:

pm.max_children = 30 //设置子进程最大数值

举例:

每个php-fpm子进程占用20M内存,服务器的内存是1G,除去系统中其他应用占用的内存。

假如系统为300M,剩余700M,700/20 = 35,最多设置35,可以取值稍微低一些为30。

与此同时我们还要调整以下参数

pm.start_servers = 10 //php-fpm启动起始进程数
pm.min_spare_servers = 10 //动态php-fpm的最小空闲进程数
pm.max_spare_servers = 24 //动态php-fpm的最大空闲进程数
pm.max_requests = 500 //所有子进程重启时间

举例:

所有子进程重启时间为300s一次,并发量为50,max_children设置为30;

max_requests = 300*50/30=500;

如果想让进程每隔一小时重生一次,则是3600*50/30=6000。

解决办法:


修改pm.max_children参数具体操作步骤:


如果你是用的一键安装包,请按以下步骤操作:

1、执行vim命令

vim /usr/local/php/etc/php-fpm.conf
pm.max_children = 5

直接修改为

pm.max_children = 20

提示:20这个值仅做参考,可以继续增加,具体的话请根据自己的服务器配置来设置;请按照上面的计算方法来设置;并不是越大越好!只要配置后不再报错就OK!

lnmp一键安装包,如果博主没记错,默认的是pm.max_children = 10;

2、保存退出并重启php-fpm;

pkill -9 php //杀掉php进程
./sbin/php-fpm //重启php服务
服务器报错nginx 502 Bad Gateway的原因以及解决办法

如果你是用的手工源码安装php;修改pm.max_children它的路径却不一样;

网站来举例:

vim /fujieace/php/etc/php-fpm.d/fujieace.conf

fujieace.conf是我重名命过的,你安装的时候是修改成什么样子就是什么样子,默认修改的是www.conf;

其它的也没什么不同,和上面操作都是一样的;主要的是要找到php-fpm的配置文件,并修改它的最大子进程个数;文章来源地址https://www.toymoban.com/news/detail-419414.html

到了这里,关于服务器报错nginx 502 Bad Gateway的原因以及解决办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 宝塔反向代理后报错:502 Bad Gateway nginx

    我应该跟这个问题差不多,解决方案也来自这里: 在反代的时候没有强制指定SSL协议,导致SSL握手失败,在反代配置中添加上相关的配置就好:

    2024年02月12日
    浏览(48)
  • 502 bad gateway原因、解决方法

     网上查了查资料,这里记录一下。       在当今时代,每个人都使用互联网。 通常,在使用 Internet 和访问网页时,计算机和网站之间可能会出现连接问题。 这些连接问题会产生某些错误代码,称为 HTTP 状态代码。 这些代码根据类型分为 1xx、2xx、3xx、4xx 和 5xx。 由于不同

    2024年02月05日
    浏览(47)
  • Nginx错误502 Bad Gateway

    使用Nginx配置的反向代理,浏览器访问的时候出现 “502 Bad Gateway” 错误,检查了一下后台error文件,发现有类似下面的错误 其中 “upstream sent too big header while reading response header from upstream” 说明可能是nginx代理的缓冲区不够,因此需要调整一下缓冲区的配置,主要包括下面几

    2024年02月19日
    浏览(41)
  • PHP-FPM与Nginx通信报 502 Bad Gateway或504 Gateway Timeout终极解决方案(适用于PHP执行耗时任务情况下的报错)

    适用于常规请求都没问题,但是执行某些php脚本需要超过一分钟的情况下的502/504,并不是任何请求都502/504的情况(这说明php-fpm或者nginx配置错误)。 执行脚本时间太长,期间php没有返回任何的数据。 php-fpm超时,nginx没超时 。nginx认为php-fpm罢工了,然后抛出了异常。 执行脚

    2024年02月08日
    浏览(58)
  • 502 Bad Gateway产生的原因以及8种详细的解决方法

    今天打开某网站时,却报出如下的错误信息: 即报出 502 Bad Gateway 的错误信息,这个错误信息是什么,又该如何解决呢? 接下来,我便详细分析。

    2023年04月14日
    浏览(82)
  • nginx+php 出现502 bad gateway

    nginx+php 出现502 bad gateway,一般这都不是nginx的问题,而是由于 fastcgi或者php的问题导致的,常见的有以下几种。 1.   php.ini 的memory_limit 过小(如果有个别php程序进程需要占用极大内存时这个必须注意) 2.   php-fpm.conf 中max_children或者max_requests  设置不合理(设置过小会因为没

    2024年02月12日
    浏览(47)
  • 502 bad gateway报错

    代码在本地运行可以正常访问后端接口,部署服务器报错502。直接检查防火墙状态是否开启,先关闭防火墙试一下。如果是防火墙的原因在打开防火墙,开放需要的端口即可。 1、先查看防火墙状态: 2、停止防火墙: 3、启动防火墙: 4、开放端口号: 创作不易,大家帮忙关

    2024年02月14日
    浏览(36)
  • nginx反向代理502-Bad Gateway问题解决

    配置nginx反向代理时出现502 通过nginx -t检查配置以成功 通过nginx -s reload重新加载 通过cat /var/log/nginx/error.log查看错误日志发现错误信息,这里的错误信息是“connecting to upstream ”。这里怀疑是selinux拒绝nginx 转发 8080端口。 关闭selinux重新测试 关闭后重新测试正常,可以通过反向

    2024年01月19日
    浏览(65)
  • 【已解决】nginx 502 Bad Gateway 问题排查

    访问网站或请求接口时,出现: 日志一般放在/var/log/nginx下面。 跑流水线的话一般部署日志在控制台可以直接看到(我遇到的一次就是构建包下载下来大小为0kb,md5校验也不通过) 源码安装的nginx配置文件一般在 /usr/local/nginx/conf/nginx.conf/ 不是源码安装的一般在 /etc/nginx/ngi

    2024年02月15日
    浏览(56)
  • nginx反向代理502-Bad Gateway问题解决方法

    用nginx反向代理 localhost:80 域名到服务器 localhost:8080 端口服务时,访问出现502 bad gateway 原因分析: 1.查看8080端口服务启动 2.查看错误日志:error.log,以centos7.x为例: 192.168.10.202 - - [08/May/2023:20:53:43 +0800] \\\"GET /jenkinsx/ HTTP/1.1\\\" 502 3693 \\\"-\\\" \\\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/53

    2024年02月06日
    浏览(96)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包