简单来说,502就是报告错误类型代码bad getway的网关。当连接超时时,我们向服务器发送一个请求。因为目前服务器的链接太多,服务器无法给出正常的响应,导致这种错误。
你可以试着清空浏览器缓存,访问你的FTP看看能不能登录。
成功解决502 Bad Gateway错误
今天,我登录我的博客,显示502坏网关。NGINX最讨厌的就是经常出现这个错误。由于不打算在技术上花太多时间,一般会遇到相关问题,搜索引擎就能解决,就不赘述了。事不宜迟,说说我的大致经历吧。
首先我重启了服务器,但是几次都不行。然后我去谷歌搜索502坏网关,出来一大堆网页。经过筛选,我进入了http://lnmp.org/faq/lnmp-Nginx-502-Bad-Gateway.html.作者详细总结,并基本遵循它。问题是,我的根本不匹配,因为里面列出的路径或者php-fpm和php-cgi根本不存在,这难倒我了。所以突然想到与其盲目找原因,不如重启web服务器。结果出来了。
谷歌后,一个朋友给的
httpd :/usr/local/Apache/conf/httpd . conf的第54行出现语法错误:模块rewrite_module是内置的,无法加载
说模块是内置的,不用调入,注释掉。
# load module rewrite _ module modules/mod _ rewrite . so
以下是补充:
然后,根据评论,重启web服务器。果然没问题。来回要花很多时间。主要是思维的问题。先找出问题出在哪里,再想办法解决。这里主要是用来录音,留着以后用。产生原因
服务器(不一定是Web服务器)充当网关或代理,以满足客户(如Web浏览器或我们的CheckUpDown机器人)访问所请求的URL的需求。此服务器收到无效响应,并从上游服务器访问以完成其请求。
修复了502错误
此一般问题是由于后端计算机之间的IP通信不畅造成的,包括您可能试图访问的web服务器上的网站。在分析这个问题时,应该彻底清除浏览器缓存。
如果你在上网时尝试访问的所有网站上都看到这个问题,有两种可能。
1)您的ISP出现重大设备故障/过载,或者
2)有问题的内部互联网连接,如您的防火墙无法正常工作。
在第一种情况下,只有您的ISP可以帮助您。第二种情况,你需要解决什么,那就是阻止你上网。
如果你只是在你尝试访问的一些网站出现这个问题,那很可能就是一个问题,就是这些网站中的一个有故障或者过载的设备。请联系网站管理员。
关于502 bad getway报错的解决办法 通俗解释一下
1.什么是502 bad getway错误?
简单来说,502是报告错误类型代码bad getway错误的网关。
2.错误的原因
当连接超时时,我们向服务器发送一个请求。因为服务器的链接太多,服务器无法给出正常的响应,导致这种错误。
3.营救的方法
当然,最好的解决方案是在服务器上做,对所有人来说不太可能。
那么,我们有什么补救措施呢?
说白了,很简单。
这是——刷新(不是一般刷新)
刷新原理:很多人可能不知道刷新有两种。
刷新实际上是从服务器下载数据到本地硬盘浏览器,
然后把本地硬盘上的数据读到浏览器上给我们看。
基本刷新:点击刷新或使用F5快捷键。
基本上刷新只是把本地硬盘的数据检索到浏览器,并不会重新请求服务器。
大多数用户大部分时间都是这样刷新的。如果他们遇到502错误,这将没有任何影响。
从服务器刷新:如果再次直接点击想要浏览的网页链接,会发现刚刚显示502 bad getway的页面又可以正常浏览了!
你明白吗?当你点击你想浏览的网页的链接时,数据将再次从服务器下载。
解决方法是从服务器刷新:快捷键ctrl F5,然后再次向服务器发送请求。
如果服务器可以给你一个正常的响应,你就可以看到这个页面。
深入分析Nginx 502 Bad Gateway和Nginx 504 Gateway Time-out及其解决
NGX502BAD Gateway表示请求的PHP-CGI已经执行,但是由于某种原因(通常是读取资源的问题),PHP-CGI的进程已经终止。
NGX504网关超时的意思是被请求的网关没有请求,简单来说就是没有请求可执行的PHP-CGI。
要解决这两个问题,需要综合考虑。一般来说,Nginx 502坏网关和php-fpm.conf的设置有关,Nginx 504网关超时和nginx.conf的设置有关
但正确的设置需要考虑服务器本身的性能、访客数量等多重因素。
以我现在的服务器为例。CPU是CENTOS系统,1.5G CPU,1GB内存。大约50名游客同时在线。
但是大多数上网的人需要请求PHP-CGI进行大量的信息处理,所以我把nginx.conf设置为:
fastcgi _ connect _ timeout 300s
fastcgi _ send _ timeout 300s
fastcgi _ read _ timeout 300s
fastcgi _ buffer _ size 128k
fastcgi _ buffers 8 128k#8 128
fastcgi _ busy _ buffers _ size 256k
fastcgi _ temp _ file _ write _ size 256k;
fastcgi _ intercept _ errors on
这里最重要的设置是前三个,即
fastcgi _ connect _ timeout 300s
fastcgi _ send _ timeout 300s
fastcgi _ read _ timeout 300s
这里规定了PHP-CGI连接、发送、读取的时间,300秒足够了。因此,504网关超时错误很少出现在我的服务器上。最重要的是php-fpm.conf的设置,会直接导致502坏网关和504网关超时。
我们来仔细分析一下php-fpm.conf的几个重要参数:
Php-fpm.conf有两个关键参数,一个是' max_children ',另一个是' request_terminate_timeout '
我的两个设置的值分别是‘40’和‘900’,但是这个值不是通用的,需要自己计算。
计算方法如下:
如果你的服务器性能足够好,宽带资源足够,PHP脚本不是循环或者bug,可以直接设置' request_terminate_timeout '为0s。0s的意思是保持PHP-CGI运行没有时间限制。而如果你做不到这一点,也就是说你的PHP-CGI可能出现了BUG,或者你的宽带不够或者其他原因可以导致你的PHP-CGI假死,那么建议你给' request_terminate_timeout '赋一个值,这个值可以根据你服务器的性能来设置。一般来说,性能越好,可以设置的越高,大概需要20 -30分钟。因为我的服务器PHP脚本需要运行很长时间,有的可能要10分钟以上,所以我把它设置为900秒,这样就不会造成PHP-CGI死机,造成502坏网关错误。
而‘max _ children’的值是如何计算的?原则上,值越大越好。php-cgi中进程多了,处理的就快了,队列中的请求就少了。设置' max_children '也需要根据服务器的性能来设置。一般来说,一个服务器中每个php-cgi消耗的内存正常情况下在20M左右,所以我把我的' max_children '设置为40,20M*40=800M,也就是说所有PHP-CGI消耗的内存在峰值时在800M以内,低于我1Gb的有效内存。而如果我的' max_children '设置很小,比如说5-10,那么php-cgi就会'很累',处理速度慢,等待时间长。如果长时间没有处理请求,就会出现504网关超时错误,而那些正在处理的累php-cgi遇到问题就会出现502坏网关错误。
Nginx 502 bad gateway错误解决方法
在使用Nginx作为Web服务器时,或多或少会遇到Nginx 502坏网关的错误。造成这种错误的原因有很多。让我们逐一分析。
首先,检查php-cgi是否正在运行。
有时候由于网站流量过大或者其他原因,php-cgi直接宕机,我们就要看看php-cgi是不是在运行了。执行以下命令:
ps -A | grep php5-cgi
如果没有,请手动启动。
/etc/init.d/php_cgi启动
如果发现php-cgi有时会因为未知原因而宕机,可以使用以下脚本暂时解决这个问题,并将其添加到cronjob中。
if PS aux | grep ' PHP 5-CGI ' | grep-v grep/dev/null;然后echo的PHP-cgi正在运行!Else echo的php-CGI已关闭。重新开始…'/etc/init . d/PHP-FCGI start fi II。fastcgi进程数量不足和PHP执行时间长的原因
fastcgi进程的数量可以修改php-fpm.conf中max_children的值,php-cgi在峰值时消耗的内存最大为20M。请根据自己的记忆来计算。
限制php执行时间可以在php-fpm.conf中的request_terminate_timeout中设置,这是为了防止php-cgi因为php程序中的bug而假死。
第三,FastCGI执行时间太长。
根据实际情况调整以下参数值
fastcgi _ connect _ timeout 300fastcgi _ send _ timeout 300fastcgi _ read _ timeout 300
除了以上列举的三种情况,当然还有其他原因,但以上三种情况最为常见。
最近几天发现网通线的服务器流量不稳定。具体表现就是流量时高时低。当流量较低时,发现系统的负载很小,几乎为零。但是,过了一段时间,负载又上去了,流量也上去了。这很奇怪。找了2天,也没找到原因。后来看了一篇文章,介绍了如何解决nginx中502的错误现象。我试过这个方法,终于找到了。
求解步骤如下:
1.检查当前PHP FastCGI进程的数量是否足够。
netstat-anpo | grep ' PHP-CGI ' | WC-l
如果实际使用的“FastCGI进程数”接近预设的“FastCGI进程数”,则“FastCGI进程数”不够,需要增加。
2.一些PHP程序的执行时间超过了Nginx的等待时间。可以在nginx.conf配置文件中适当增加FastCGI的超时时间,例如:
在做第一步的时候,系统中当前的PHP FastCGI进程数明显超过了预设值64。检查当前电信服务器上PHP FastCGI进程数不高于64的值,网通线的活跃连接明显高于电信。晚上我要去看看情况。结果到晚上22: 30,检查系统中PHP FastCGI进程的当前数量明显少于预设值64,当前活动连接比原来低很多,说明nginx的不稳定是服务器访问负载过大造成的,即使加上第二步的错误也不行。
总之,如果php-cgi进程数量不够,php执行时间长,或者php-cgi进程死亡,就会出现502错误。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。