首页 >> 综合问答 >

502(bad gateway怎么解决)

2023-04-23 15:00:35 来源: 用户: 

大家好,综合小编来为大家讲解下502,bad gateway怎么解决这个很多人还不知道,现在让我们一起来看看吧!

原因

服务器(不一定是Web服务器)充当网关或代理,以满足客户(如Web浏览器或我们的CheckUpDown机器人)访问所请求的URL的需求。此服务器从上游服务器收到一个无效响应来满足其要求。

修复了502错误

通常,此问题是由于IP后端计算机之间的通信不畅,包括您可能试图访问的web服务器上的网站。在分析这个问题时,应该彻底清除浏览器缓存。

如果你在上网时尝试访问的所有网站上都看到这个问题,有两种可能。

1)您的ISP出现重大设备故障/过载,或者

2)内部互联网连接有问题,例如您的防火墙工作不正常。

在第一种情况下,只有您的ISP可以帮助您。第二种情况,需要解决什么?那就是阻止你上网。

如果你只是在你尝试访问的一些网站出现这个问题,那很可能是有问题,就是这些网站中有一个出现了设备故障或者过载。请联系网站管理员。

关于502不良getway错误报告解决方案的通俗解释。

1.什么是502 bad getway错误?

简单来说,502就是网关上报错误类型码bad getway。

2.错误的原因

连接超时我们向服务器发送了一个请求。因为目前服务器的链接太多,服务器无法给出正常的响应,导致了这样的错误。

3.解救的办法

最好的解决办法当然还是在服务器上做对大家来说不太可能

那么我们有什么解救的方法呢?

说白了很简单

就是——刷新(不是一般的刷新哦)

刷新的原理:很多人可能不知道刷新也是有两种的。

所谓刷新其实就是从服务器下载数据到本地的硬盘浏览器,

再从本地硬盘种读取数据到浏览器显示给我们看。

基本刷新:就是点击刷新或者使用F5快捷键

基本刷新只是从本地的硬盘重新拿取数据到浏览器,并不重新向服务器发出请求。

大部分用户很多时候都是这样刷新的,遇到502报错的就没有任何效果。

从服务器刷新: 如果你重新直接点击你想要浏览的网页链接,你会发现刚才还是显示502 bad getway的页面现在又可以正常浏览了!

明白道理了吧?当你点击你想要浏览的网页链接的时候,是会从服务器重新下载数据的。

解决方法就是从服务器上刷新:快捷键ctrl+F5,这样就是重新向服务器发送请求了。

如果服务器能正常给予你响应你就可以看到页面了。

使用Nginx作为Web服务器的时候,你或多或少都会遇到Nginx 502 bad gateway的错误,造成这种错误的原因有很多。

下面我们来一一解析。

一、查看php-cgi是否在运行

有时候由于网站流量过大或者其它原因,导致php-cgi直接down掉,所以我们得看php-cgi是否在运行。执行如下命令:

ps -A | grep php5-cgi

如果没有运行,手动启动

/etc/init.d/php_cgi start

如果你发现php-cgi不明原因有时候down掉,可以使用下面的脚本临时解决这个问题,添加到cronjob。

if ps aux | grep ‘php5-cgi’ | grep -v grep /dev/null ; then echo 'PHP-cgi is runnning !' else echo 'PHP-cgi is down. Starting over…' /etc/init.d/php-fcgi start fi 二、fastcgi进程数不够用、php执行时间长的原因

fastcgi进程数可以修改php-fpm.conf中的max_children的数值,高峰时php-cgi耗掉的最大内存为20M,请根据自己的内存情况计算了。

限制php执行时间可以在php-fpm.conf中的request_terminate_timeout设置,这是为了防止php程序的bug导致php-cgi假死。

三、FastCGI执行时间过长

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

fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300;

除了上面列出的三种情况,当然还会有其它原因,但上面三种情况是最常见的

最近几天发现网通线路的服务器出现流量不稳定的情况,具体的表现是,流量时而高,时而低,在流量低的时候发现系统的负载很小,几乎为0,但是过一会,负载又高上去,流量也上去,很是奇怪,查找了2天没有找到原因,

后来看到一边文章,介绍了解决nginx出现502的错误现象,按照这个方法进行尝试,最终还是找到了问题的原因。

解决步骤如下:

1、查看当前的PHP FastCGI进程数是否够用

netstat -anpo | grep 'php-cgi' | wc -l

如果实际使用的'FastCGI进程数'接近预设的'FastCGI进程数',那么,说明'FastCGI进程数'不够用,需要增大。

2、部分PHP程序的执行时间超过了Nginx的等待时间,可以适当增加nginx.conf配置文件中FastCGI的timeout时间,例如:

在做第一步的时候,系统当前的PHP FastCGI进程数明显超过了预设值的64这个数值,在电信的服务器上查看当前的PHP FastCGI进程数没有高于64这个数值,

而且网通线路的活动连接明显高于电信的活动连接,准备到晚上的时候看看情况,结果到晚上22:30的时候,查看系统当前的PHP FastCGI进程数明显小于64预设值,当前的活动连接也比原来低很多,

由此可以说明出现nginx不稳定的情况是由于服务器访问负载过大引起的,就是加上第二步的错误也不顶作用。

本文[高级伪原创标题]到此分享完毕,希望对大家有所帮助。

  免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!

 
分享:
最新文章