502 Bad Gateway 怎么解决

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-03
打开网站有时出现502 Bad Gateway,怎么解决?

打开网站有时出现502 Bad Gateway可以这样解决:
1、502 Bad Gateway错误的原因是网站到客户端的链路网关路由异常。

2、要解决502 Bad Gateway错误服务端服务器问题,要先找到nginx配置的路径。然后找到nginx所在的error日志文件来查看具体原因。

3、如果是客户端浏览器配置的问题,以360浏览器为例,出现502 Bad Gateway可能是设置了代 代理导致的。

4、找到360浏览器右上角的设置,看看代理配置是不是勾选了。

5、取消浏览器代理之后,刷新一下就可以访问了。

6、如果是edge浏览器配置的问题,先找到edge浏览器,然后找到右上角选项,点击更多连接设置。

7、然后点击代理连接设置,打开IE的服务器代理就可以了。

8、如果是IE浏览器的配置问题,打开IE浏览器,找到工具栏中的internet 选项,点击internet选项进入配置页面。

9、然后点击连接,找到局域网连接设置,然后关闭代理设置。

这就是打开网站有时出现502 Bad Gateway的解决步骤。

502badgateway要先找到nginx配置的路径。然后找到nginx所在的error日志文件来查看具体原因。如果是客户端浏览器配置的问题,以360浏览器为例,出现502BadGateway可能是设置了代代理导致的。取消浏览器代理之后,刷新一下就可以访问了。502BadGateway是一种报错提示,这一错误并不意味着上游服务器已关闭(无响应网关/代理),而是上游服务器和网关/代理不同意的协议交换数据。鉴于互联网协议是相当清楚的,它往往意味着一个或两个机器已不正确或不完全编程。

502BadGateway是一种报错提示,这一错误并不意味着上游服务器已关闭(无响应网关/代理),而是上游服务器和网关/代理不同意的协议交换数据。第一种原因:目前lnmp一键安装包比较多的问题就是502BadGateway,大部分情况下原因是在安装php前,脚本中某些lib包可能没有安装上,造成php没有编译安装成功。解决法:可以尝试根据lnmp一键安装包中的脚本手动安装一下,看看是什么错误导致的。第二种原因:在php.ini里,eaccelerator配置项一定要放在ZendOptimizer配置之前,否则也可能引起502BadGateway第三种原因:在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf将其中的max_children值适当增加。第四种原因:php执行超时,修改/usr/local/php/etc/php.ini将max_execution_time改为300。第五种原因:磁盘空间不足,如mysql日志占用大量空间。第六种原因:查看php-cgi进程是否在运行。另外的解决法:Nginx502BadGateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止,一般来说Nginx502BadGateway和php-fpm.conf的设置有关。php-fpm.conf有两个至关重要的参数,一个是max_children,另一个是request_terminate_timeout,但是这个值不是通用的,而是需要自己计算的。在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf将其中的max_children值适当增加。计算的方式如下:如果服务器性能足够好,且宽带资源足够充足,PHP脚本没有系循环或BUG的话可以直接将request_terminate_timeout设置成0s。0s的含义是让PHP-CGI一直执行下去而没有时间限制。如果做不到这一点,也就是说PHP-CGI可能出现某个BUG,或者宽带不够充足或者其他的原因导致PHP-CGI假死那么就建议给request_terminate_timeout赋一个值,这个值可以根据服务器的性能进行设定。一般来说性能越好可以设置越高,20分钟-30分钟都可以。而max_children这个值又是怎么计算出来的呢?这个值原则上是越大越好,php-cgi的进程多了就会处理的很快,排队的请求就会很少。设置max_children也需要根据服务器的性能进行设定,一般来说一台服务器正常情况下每一个php-cgi所耗费的内存在20M左右。按照官方的答案,排查了相关的可能,并结合了网友的答案,得出了下面的解决法:1、查看phpfastcgi的进程数(max_children值)代码:netstat-anpo|grep“php-cgi”|wc-l5(假如显示5)2、查看当前进程,代码:top观察fastcgi进程数,假如使用的进程数等于或高于5个,说明需要增加(根据机器实际状况而定)3、调整/usr/local/php/etc/php-fpm.conf的相关设置1060smax_children最多10个进程,按照每个进程20MB内存,最多200MB。request_terminate_timeout执行的时间为60秒,也就是1分钟。