502 网关错误是什么意思?有哪些解决方法?
,你可以尝试删除它。使用浏览器缓存访问您的FTP,看看是否可以登录
成功解决了502 Bad Gateway错误
我今天登录博客,它显示502 bad gateway。 NGINX 最烦人的是这个错误经常出现,因为我并不想花太多的时间在技术上,所以我一般都是遇到它的问题,然后通过搜索引擎解决,而不去深究。废话不多说,来说说我的粗略经历吧。
首先我重启了服务器,但是多次失败,却没有任何结果。然后我用谷歌搜索 502 bad gateway,出现了很多网页。过滤后我输入了http://lnmp.org/faq/lnmp-Nginx-502-Bad-Gateway.html,作者总结的很详细,基本上照着做就可以了。问题是我的根本不适合,因为其中列出的路径或 php-fpm 和 php-cgi 根本不存在。 , 它气死我了。于是我突然想到,与其盲目寻找原因,不如重启一下Web服务器。结果出来了
Google后,有朋友给了我这个
httpd: Syntax error /usr/local/apache/conf/httpd.conf line 54: module rewrite_module isbuilt in and cannot be returned
的意思该模块是内置的,不需要移植。注释掉
#LoadModule rewrite_module module/mod_rewrite.so
下面是补充:,注释完之后重启web Server 就真的没问题了。来回花了很多时间,而且主要是思考问题。首先找出问题所在,然后找出解决方法。主要用于记录和保存以备将来使用。 原因
服务器(不一定是 Web 服务器)充当网关或代理服务器,以满足客户端(例如 Web 浏览器或我们的 CheckUpDown 机器人)访问所请求 URL 的请求。该服务器从它为满足请求而联系的上游服务器收到无效响应。
已修复错误 502
一般来说,此问题是由于后端计算机之间的 IP 连接不良造成的,包括您可能在 Web 服务器上访问的网站。分析这个问题时,应该彻底清除浏览器缓存。
如果您在线并且在尝试访问的每个网站上都看到此问题,则有两种可能
1) 您的 ISP 出现重大设备故障/过载或
2) 内部 Internet 连接问题防火墙无法正常工作。
在第一种情况下,只有您的互联网服务提供商可以帮助您。在第二种情况下,您需要改善对互联网的访问以阻止它。
如果您仅在尝试访问的某些网站上遇到此问题,则可能是其中某些网站已关闭或设备过载。联系站点管理员。
简单解释502 bad access错误解决方案
1.什么是 502 bad gateway 错误
简单来说,502 错误类型代码是 bad gateway 错误网关
2. 错误原因
连接超时,我们向服务器发送请求。由于服务器当前连接数过多,导致服务器无法正常响应,出现此类错误
3. 救援方法
最好的解决办法当然是不可能每个人都在服务器上这样做
那么我们有什么解决方案呢?
说实话,很简单
这就是——更新(不是普通更新)
更新原理:很多人可能不知道更新有两种类型。
所谓的更新其实就是从服务器下载数据到本地硬盘浏览器,
然后从本地硬盘读取数据到浏览器显示给我们看。
①基本更新:只需单击更新按钮或使用热键 F5
正常更新会将数据从本地硬盘重新加载到浏览器,不会再次向服务器发送请求。
这是大多数用户大部分时间更新的方式,并且不会影响 502 错误。
② 从服务器刷新:如果直接点击想要重新浏览的网页链接,你会发现原来还显示502 bad gateway的页面现在已经可以正常浏览了!
你明白吗?当您点击正在浏览的网页上的链接时,数据会再次从服务器下载。
解决办法是从服务器更新:热键ctrl+F5,意思是再次向服务器发送请求。
如果服务器可以正常响应您,您将看到该页面。
Nginx 502 Bad Gateway 和 Nginx 504 Gateway 超时深入分析及其解决方案导致 PHP-CGI 进程终止。 Nginx 502 Bad Gateway 错误解决方案 当使用 Nginx 作为 Web 服务器时,或多或少会遇到 Nginx 502 Bad Gateway 错误。造成此错误的原因有很多。下面我们就来一一分析。 ps -A | grep php5-cgi /etc/init.d/php_cgi start 如果 ps aux | grep 'php5-cgi' | grep 'php5-cgi' | grep -v grep > /dev/null ;然后回显“PHP-cgi正在工作!” else echo "PHP-cgi is down.从头开始..." /etc/init.d/php-fcgi start fi 2.fastcgi进程数不够,php执行时间长的原因 3。 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" | grep "php-cgi" | 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 不稳定。由于服务器访问负载过大,即使在第二阶段添加错误也不起作用。 综上所述,502错误是在php-cgi进程数量不够、php执行时间过长、或者php-cgi进程死掉的情况下出现的。
Nginx 504网关超时表示所请求的网关尚未被请求。简单地说,这意味着没有请求可执行的 PHP-CGI。
解决这两个问题其实需要综合思考。一般来说,Nginx 502 Bad Gateway 与 php-fpm.conf 中的设置有关,而 Nginx 504 Gateway Timeout 与 nginx.conf 中的设置有关。
正确设置需要考虑多个因素,例如服务器本身的性能和访问者数量。
以我现在的服务器为例,处理器是Pentium 4 1.5G,内存是1GB,是CENTOS系统。大约有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_busy_buffers_size 256k k;
fastcgi_inter cept_errors 上;
这里前三个设置最重要,即
fastcgi_connect_timeout 300s;
fastcgi_send_timeout 300s;
是连接、发送和读取PHP-CGI的时间。 300秒就足够了,所以我的服务器很少遇到504 Gateway Time-out错误。 。最关键的是php-fpm.conf的设置,直接导致502 Bad Gateway和504 Gateway Time-out。
我们来仔细分析一下php-fpm.conf文件的几个重要参数:
php-fpm.conf文件有两个关键参数,一个是“max_children”,另一个是“request_terminate_timeout” 其中一个值。我的两个设置中一个是“40”,一个是“900”,但是这个值不通用,必须自己计算。
计算方法如下:
如果您的服务器性能足够好,带宽资源充足,并且PHP脚本没有循环或错误,则可以直接将“request_terminate_timeout”设置为0s。 0的含义是允许PHP-CGI无限期地继续执行。如果你不能这样做,即你的PHP-CGI可能有错误或者你的带宽不够或者其他原因导致你的PHP-CGI停止,那么建议设置“request_terminate_timeout”值,该值可以根据取决于你的服务器性能。一般来说,性能越好,可以设置得越高,在20分钟到30分钟之间。由于我的服务器上的PHP脚本需要运行很长时间,有些可能需要10分钟以上,所以我将其设置为900秒以避免PHP-CGI死亡和502 Bad gateway错误。
那么“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 Bad gateway。
1、检查php-cgi是否正常工作
有时候php-cgi会因为网站流量过大或者其他原因直接崩溃,所以我们需要检查php-cgi是否正常工作。运行以下命令:
如果不行,手动启动
如果发现php-cgi有时会莫名其妙的崩溃,如果失败了,可以使用以下脚本作为此问题的临时解决方案并将其添加到 cronjob 中。
可以通过修改php-fpm.conf中php-cgi高峰期消耗的max_children值来改变fastcgi进程数 最大内存为20M,请根据自己的内存情况计算。
PHP 执行超时可以在 php-fpm.conf 文件的 request_terminate_timeout 参数中设置。这样做是为了避免 php 程序中的错误导致 php-cgi 冻结。
根据实际情况增加以下参数值
除了以上三种情况之外,当然还有其他原因,不过以上三种情况是最常见的
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网