欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

502 Bad Gateway 怎么解决?

出现502的原因是:对用户访问请求的响应超时造成的

解决办法:

1.提高 Web 服务器的响应速度,也即减少内部的调用关系,可以把需要的页面、素材或数据,缓存在内存中,可以是专门的缓存服务器 ,也可以Web服务器自身的缓存,提高响应速度;

2.网络带宽的问题,则对传输的数据包进行压缩处理,或者向IDC申请增加带宽;

3.属于内部网络的故障或设置问题,也即内部网络拥塞,可能内部存在大量的数据调用或交互造成的,则需要优化内部网络传输或协议;

4.数据库的数据读取造成前端服务器 ,响应用户的请求变慢,那么必须提高数据库的处理能力,若是只读业务可以增加数据缓存的模式 或者增加数据库备机,分散读压力;

若是写的压力,则可以考虑延迟写的模式,想这个时候做数据写分散肯定来不及



提问的朋友,给你从上述4个方面综合提出了解答,不过具体从那些方面着手必须分析你们内部的真实情况,这个我们热璞科技团队 提供这块的服务,尤其双十一的时候是最容易出现的。 联系我们 - 热璞科技

关于502 bad gateway报错的解决办法


通俗解释一下
1.什么是502 bad gateway 报错
简单来说 502 是报错类型代码 bad gateway 错误的网关。
2.产生错误的原因
连接超时 我们向服务器发送请求 由于服务器当前链接太多,导致服务器方面无法给于正常的响应,产生此类报错
3.解救的办法
最好的解决办法当然还是在服务器上做 对大家来说不太可能
那么我们有什么解救的方法呢?
说白了 很简单
就是——刷新(不是一般的刷新哦)
刷新的原理:很多人可能不知道 刷新也是有两种的。
所谓刷新其实就是从服务
器下载数据到本地的硬盘浏览器,
再从本地硬盘中读取数据到浏览器显示给我们看。
①基本刷新:就是点击刷新或者使用F5快捷键
基本刷新只是从本地的硬盘重新拿取数据到浏览器,并不重新向服务器发出请求。
大部分用户很多时候都是这样刷新的,遇到502报错的就没有任何效果。
②从服务器刷新: 如果你重新直接点击你想要浏览的网页链接,你会发现刚才还是显示502 bad gateway的页面现在又可以正常浏览了!
明白道理了吧?当你点击你想要浏览的网页链接的时候,是会从服务器重新下载数据的。
解决方法就是从服务器上刷新:快捷键 ctrl+F5,这样就是重新向服务器发送请求了。
如果服务器能正常给予你响应你就可以看到页面了。

这类问题goole上面有很多,建议搜索
这个错误是由于服务器压力过大,不能及时处理client的请求导致服务器响应超时而抛出的错误。需要跟踪监控服务器的处理过程,对症解决。

我常在Nginx服务器上发现502错误,很多情况下并非Nginx本身的问题。就以Nginx+PHP+MySQL这种架构说明。

Nginx本身设置等cgi接口返回的数据延时太短,要延长这个时间。如同前面说的,很多情况下并非Nginx本身的问题,这样操作后常常并不能缓解问题。

此时,就要考虑对应cgi接口的配置,比如 php-fpm.conf 的配置,脚本执行时间的超时情况限制。这可以通过跟踪php-fpm的 slow log 来排查,对相关代码优化,减少延时。

另外很大的问题在MySQL数据库这一块,如果数据库执行命令超时也会大延长php脚本的执行时间,导致 Nginx 等待超时。可以my.cnf的 slow log进行确认效能低下的sql语句是哪些,进行优化配置。

通过优化 php-fpm 及 MySQL的配置都大大减少Nginx的等待超时的情况。

以上是LNMP的架构为例进行说明。

谢谢邀请!

  • 首先不好意思,国庆一直加班,没有上知乎。其次,我以前的工作基本没有遇到这个问题。可能帮不了你。忘谅解!
  • 这个问题的基本理论,其他人都说的差不多了,我不说了。
  • 问了一下同事(),某些商用web服务,也会遇到这个问题。

但你的问题应该还没有解决,访问量不大,服务器数量不多,所以问题应该还是你自己的网络、服务器搭建环境。给一些我自己的建议吧
  • 测试你的所有服务器(haproxy、web、db、others)的链接情况,简单点用curl命令。
  • 程序多打log,查看潜在问题
  • 测试单台服务器,看有没有服务中断的情况。
  • 将所有服务器的所有日志分别分析,我想问题就在其中,祝你好运!

补充:
程序这个东西,没有什么运气之说。有问题,一定是某个bug在。
有耐心的慢慢看看,可能隔一两天你就找到了。
我也遇到这个问题啊!怎么解决啊?关键是同一个网站,有的连接就没事有的就不行,这才是奇怪的把。。。

 

产生错误的原因

 

连接超时 我们向服务器器发送请求 由于服务器当前链接太多,导致服务器方面无法给于正常的响应,产生此类报错。

 

502 bad gateway怎么解决

 

普通访客

 

一般情况下稍候访问或者按下快捷键 ctrl+F5强制刷新一下,这样是重新向服务器发送请求了。再或者清理一下电脑的缓冲文件.(如果一直都是这样,我们只能等管理员来解决)

 

管理员

 

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

 

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

 

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

 

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

 

.....
http
{
......
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
......
}
......
php.ini中memory_limit设低了会出错,修改了php.ini的memory_limit为64M,重启nginx,发现好了,原来是PHP的内存不足了。

参考资料:502 bad gateway什么意思,502 bad gateway怎么解决

可以试试清空缓存下

不好意思,我碰到的50X的错误,大部分的都是错误本来异常了.
如果是这一种,那就排查错误

再碰到的,就是服务器压力太大.
如果是这一种,一般会做负载均衡处理了.
当然也有可能是程序对资源的使用和释放有问题,也会对相关的资源再做检查.
如果以上二种都没有资源再扩展(如:我们需要调用一个运营商的接口,他们做了并发10的控制- -!),这种情况,我们会对普通用户做拒绝访问控制,也就是当用户数达到10个并发,更多用户过来访问,我们就会提示用户稍后再试.
可以尝试清除浏览器缓存 访问一下你的FTP看是否可以登陆 产生原因 服务器(不一定是Web服务器)是作为网关或代理,以满足客户的要求(如Web浏览器或我们的CheckUpDown机器人)来访问所请求的URL 。此服务器收到无效响应从上游服务器访问履行它的要求。 固定502错误 一般这个问题是由于不良的IP之间的沟通后端计算机,包括您可能尝试访问的在Web服务器上的网站。在分析这个问题,您应该清除浏览器缓存完全。 如果您上网时在您尝试访问的所有网站上都看这个问题,有两种可能 1 )你的ISP了重大设备故障/过载或 2 )有问题的内部互联网连接如您的防火墙无法正常运作。 在第一种情况下,只有您的ISP可以帮助您。在第二种情况下,你需要解决什么,那就是阻止你进入互联网。 如果您只有在部分尝试访问的网站中出现此问题,那就很可能是一个问题,即这些网站之一,其设备故障或超载。联系网站的管理员。默认排序

出现502的原因是:对用户访问请求的响应超时造成的

解决办法:

1.提高 Web 服务器的响应速度,也即减少内部的调用关系,可以把需要的页面、素材或数据,缓存在内存中,可以是专门的缓存服务器 ,也可以Web服务器自身的缓存,提高响应速度;

2.网络带宽的问题,则对传输的数据包进行压缩处理,或者向IDC申请增加带宽;

3.属于内部网络的故障或设置问题,也即内部网络拥塞,可能内部存在大量的数据调用或交互造成的,则需要优化内部网络传输或协议;

4.数据库的数据读取造成前端服务器 ,响应用户的请求变慢,那么必须提高数据库的处理能力,若是只读业务可以增加数据缓存的模式 或者增加数据库备机,分散读压力;

若是写的压力,则可以考虑延迟写的模式,想这个时候做数据写分散肯定来不及



提问的朋友,给你从上述4个方面综合提出了解答,不过具体从那些方面着手必须分析你们内部的真实情况,这个我们热璞科技团队 提供这块的服务,尤其双十一的时候是最容易出现的。 联系我们 - 热璞科技

关于502 bad gateway报错的解决办法


通俗解释一下
1.什么是502 bad gateway 报错
简单来说 502 是报错类型代码 bad gateway 错误的网关。
2.产生错误的原因
连接超时 我们向服务器发送请求 由于服务器当前链接太多,导致服务器方面无法给于正常的响应,产生此类报错
3.解救的办法
最好的解决办法当然还是在服务器上做 对大家来说不太可能
那么我们有什么解救的方法呢?
说白了 很简单
就是——刷新(不是一般的刷新哦)
刷新的原理:很多人可能不知道 刷新也是有两种的。
所谓刷新其实就是从服务
器下载数据到本地的硬盘浏览器,
再从本地硬盘中读取数据到浏览器显示给我们看。
①基本刷新:就是点击刷新或者使用F5快捷键
基本刷新只是从本地的硬盘重新拿取数据到浏览器,并不重新向服务器发出请求。
大部分用户很多时候都是这样刷新的,遇到502报错的就没有任何效果。
②从服务器刷新: 如果你重新直接点击你想要浏览的网页链接,你会发现刚才还是显示502 bad gateway的页面现在又可以正常浏览了!
明白道理了吧?当你点击你想要浏览的网页链接的时候,是会从服务器重新下载数据的。
解决方法就是从服务器上刷新:快捷键 ctrl+F5,这样就是重新向服务器发送请求了。
如果服务器能正常给予你响应你就可以看到页面了。

这类问题goole上面有很多,建议搜索
这个错误是由于服务器压力过大,不能及时处理client的请求导致服务器响应超时而抛出的错误。需要跟踪监控服务器的处理过程,对症解决。

我常在Nginx服务器上发现502错误,很多情况下并非Nginx本身的问题。就以Nginx+PHP+MySQL这种架构说明。

Nginx本身设置等cgi接口返回的数据延时太短,要延长这个时间。如同前面说的,很多情况下并非Nginx本身的问题,这样操作后常常并不能缓解问题。

此时,就要考虑对应cgi接口的配置,比如 php-fpm.conf 的配置,脚本执行时间的超时情况限制。这可以通过跟踪php-fpm的 slow log 来排查,对相关代码优化,减少延时。

另外很大的问题在MySQL数据库这一块,如果数据库执行命令超时也会大延长php脚本的执行时间,导致 Nginx 等待超时。可以my.cnf的 slow log进行确认效能低下的sql语句是哪些,进行优化配置。

通过优化 php-fpm 及 MySQL的配置都大大减少Nginx的等待超时的情况。

以上是LNMP的架构为例进行说明。

谢谢邀请!

  • 首先不好意思,国庆一直加班,没有上知乎。其次,我以前的工作基本没有遇到这个问题。可能帮不了你。忘谅解!
  • 这个问题的基本理论,其他人都说的差不多了,我不说了。
  • 问了一下同事(),某些商用web服务,也会遇到这个问题。

但你的问题应该还没有解决,访问量不大,服务器数量不多,所以问题应该还是你自己的网络、服务器搭建环境。给一些我自己的建议吧
  • 测试你的所有服务器(haproxy、web、db、others)的链接情况,简单点用curl命令。
  • 程序多打log,查看潜在问题
  • 测试单台服务器,看有没有服务中断的情况。
  • 将所有服务器的所有日志分别分析,我想问题就在其中,祝你好运!

补充:
程序这个东西,没有什么运气之说。有问题,一定是某个bug在。
有耐心的慢慢看看,可能隔一两天你就找到了。
我也遇到这个问题啊!怎么解决啊?关键是同一个网站,有的连接就没事有的就不行,这才是奇怪的把。。。

 

产生错误的原因

 

连接超时 我们向服务器器发送请求 由于服务器当前链接太多,导致服务器方面无法给于正常的响应,产生此类报错。

 

502 bad gateway怎么解决

 

普通访客

 

一般情况下稍候访问或者按下快捷键 ctrl+F5强制刷新一下,这样是重新向服务器发送请求了。再或者清理一下电脑的缓冲文件.(如果一直都是这样,我们只能等管理员来解决)

 

管理员

 

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

 

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

 

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

 

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

 

.....
http
{
......
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
......
}
......
php.ini中memory_limit设低了会出错,修改了php.ini的memory_limit为64M,重启nginx,发现好了,原来是PHP的内存不足了。

参考资料:502 bad gateway什么意思,502 bad gateway怎么解决

可以试试清空缓存下

不好意思,我碰到的50X的错误,大部分的都是错误本来异常了.
如果是这一种,那就排查错误

再碰到的,就是服务器压力太大.
如果是这一种,一般会做负载均衡处理了.
当然也有可能是程序对资源的使用和释放有问题,也会对相关的资源再做检查.
如果以上二种都没有资源再扩展(如:我们需要调用一个运营商的接口,他们做了并发10的控制- -!),这种情况,我们会对普通用户做拒绝访问控制,也就是当用户数达到10个并发,更多用户过来访问,我们就会提示用户稍后再试.
可以尝试清除浏览器缓存 访问一下你的FTP看是否可以登陆 产生原因 服务器(不一定是Web服务器)是作为网关或代理,以满足客户的要求(如Web浏览器或我们的CheckUpDown机器人)来访问所请求的URL 。此服务器收到无效响应从上游服务器访问履行它的要求。 固定502错误 一般这个问题是由于不良的IP之间的沟通后端计算机,包括您可能尝试访问的在Web服务器上的网站。在分析这个问题,您应该清除浏览器缓存完全。 如果您上网时在您尝试访问的所有网站上都看这个问题,有两种可能 1 )你的ISP了重大设备故障/过载或 2 )有问题的内部互联网连接如您的防火墙无法正常运作。 在第一种情况下,只有您的ISP可以帮助您。在第二种情况下,你需要解决什么,那就是阻止你进入互联网。 如果您只有在部分尝试访问的网站中出现此问题,那就很可能是一个问题,即这些网站之一,其设备故障或超载。联系网站的管理员。默认排序

出现502的原因是:对用户访问请求的响应超时造成的

解决办法:

1.提高 Web 服务器的响应速度,也即减少内部的调用关系,可以把需要的页面、素材或数据,缓存在内存中,可以是专门的缓存服务器 ,也可以Web服务器自身的缓存,提高响应速度;

2.网络带宽的问题,则对传输的数据包进行压缩处理,或者向IDC申请增加带宽;

3.属于内部网络的故障或设置问题,也即内部网络拥塞,可能内部存在大量的数据调用或交互造成的,则需要优化内部网络传输或协议;

4.数据库的数据读取造成前端服务器 ,响应用户的请求变慢,那么必须提高数据库的处理能力,若是只读业务可以增加数据缓存的模式 或者增加数据库备机,分散读压力;

若是写的压力,则可以考虑延迟写的模式,想这个时候做数据写分散肯定来不及



提问的朋友,给你从上述4个方面综合提出了解答,不过具体从那些方面着手必须分析你们内部的真实情况,这个我们热璞科技团队 提供这块的服务,尤其双十一的时候是最容易出现的。 联系我们 - 热璞科技

关于502 bad gateway报错的解决办法


通俗解释一下
1.什么是502 bad gateway 报错
简单来说 502 是报错类型代码 bad gateway 错误的网关。
2.产生错误的原因
连接超时 我们向服务器发送请求 由于服务器当前链接太多,导致服务器方面无法给于正常的响应,产生此类报错
3.解救的办法
最好的解决办法当然还是在服务器上做 对大家来说不太可能
那么我们有什么解救的方法呢?
说白了 很简单
就是——刷新(不是一般的刷新哦)
刷新的原理:很多人可能不知道 刷新也是有两种的。
所谓刷新其实就是从服务
器下载数据到本地的硬盘浏览器,
再从本地硬盘中读取数据到浏览器显示给我们看。
①基本刷新:就是点击刷新或者使用F5快捷键
基本刷新只是从本地的硬盘重新拿取数据到浏览器,并不重新向服务器发出请求。
大部分用户很多时候都是这样刷新的,遇到502报错的就没有任何效果。
②从服务器刷新: 如果你重新直接点击你想要浏览的网页链接,你会发现刚才还是显示502 bad gateway的页面现在又可以正常浏览了!
明白道理了吧?当你点击你想要浏览的网页链接的时候,是会从服务器重新下载数据的。
解决方法就是从服务器上刷新:快捷键 ctrl+F5,这样就是重新向服务器发送请求了。
如果服务器能正常给予你响应你就可以看到页面了。

这类问题goole上面有很多,建议搜索
这个错误是由于服务器压力过大,不能及时处理client的请求导致服务器响应超时而抛出的错误。需要跟踪监控服务器的处理过程,对症解决。

我常在Nginx服务器上发现502错误,很多情况下并非Nginx本身的问题。就以Nginx+PHP+MySQL这种架构说明。

Nginx本身设置等cgi接口返回的数据延时太短,要延长这个时间。如同前面说的,很多情况下并非Nginx本身的问题,这样操作后常常并不能缓解问题。

此时,就要考虑对应cgi接口的配置,比如 php-fpm.conf 的配置,脚本执行时间的超时情况限制。这可以通过跟踪php-fpm的 slow log 来排查,对相关代码优化,减少延时。

另外很大的问题在MySQL数据库这一块,如果数据库执行命令超时也会大延长php脚本的执行时间,导致 Nginx 等待超时。可以my.cnf的 slow log进行确认效能低下的sql语句是哪些,进行优化配置。

通过优化 php-fpm 及 MySQL的配置都大大减少Nginx的等待超时的情况。

以上是LNMP的架构为例进行说明。

谢谢邀请!

  • 首先不好意思,国庆一直加班,没有上知乎。其次,我以前的工作基本没有遇到这个问题。可能帮不了你。忘谅解!
  • 这个问题的基本理论,其他人都说的差不多了,我不说了。
  • 问了一下同事(),某些商用web服务,也会遇到这个问题。

但你的问题应该还没有解决,访问量不大,服务器数量不多,所以问题应该还是你自己的网络、服务器搭建环境。给一些我自己的建议吧
  • 测试你的所有服务器(haproxy、web、db、others)的链接情况,简单点用curl命令。
  • 程序多打log,查看潜在问题
  • 测试单台服务器,看有没有服务中断的情况。
  • 将所有服务器的所有日志分别分析,我想问题就在其中,祝你好运!

补充:
程序这个东西,没有什么运气之说。有问题,一定是某个bug在。
有耐心的慢慢看看,可能隔一两天你就找到了。
我也遇到这个问题啊!怎么解决啊?关键是同一个网站,有的连接就没事有的就不行,这才是奇怪的把。。。

 

产生错误的原因

 

连接超时 我们向服务器器发送请求 由于服务器当前链接太多,导致服务器方面无法给于正常的响应,产生此类报错。

 

502 bad gateway怎么解决

 

普通访客

 

一般情况下稍候访问或者按下快捷键 ctrl+F5强制刷新一下,这样是重新向服务器发送请求了。再或者清理一下电脑的缓冲文件.(如果一直都是这样,我们只能等管理员来解决)

 

管理员

 

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

 

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

 

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

 

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

 

.....
http
{
......
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
......
}
......
php.ini中memory_limit设低了会出错,修改了php.ini的memory_limit为64M,重启nginx,发现好了,原来是PHP的内存不足了。

参考资料:502 bad gateway什么意思,502 bad gateway怎么解决

可以试试清空缓存下

不好意思,我碰到的50X的错误,大部分的都是错误本来异常了.
如果是这一种,那就排查错误

再碰到的,就是服务器压力太大.
如果是这一种,一般会做负载均衡处理了.
当然也有可能是程序对资源的使用和释放有问题,也会对相关的资源再做检查.
如果以上二种都没有资源再扩展(如:我们需要调用一个运营商的接口,他们做了并发10的控制- -!),这种情况,我们会对普通用户做拒绝访问控制,也就是当用户数达到10个并发,更多用户过来访问,我们就会提示用户稍后再试.
可以尝试清除浏览器缓存 访问一下你的FTP看是否可以登陆 产生原因 服务器(不一定是Web服务器)是作为网关或代理,以满足客户的要求(如Web浏览器或我们的CheckUpDown机器人)来访问所请求的URL 。此服务器收到无效响应从上游服务器访问履行它的要求。 固定502错误 一般这个问题是由于不良的IP之间的沟通后端计算机,包括您可能尝试访问的在Web服务器上的网站。在分析这个问题,您应该清除浏览器缓存完全。 如果您上网时在您尝试访问的所有网站上都看这个问题,有两种可能 1 )你的ISP了重大设备故障/过载或 2 )有问题的内部互联网连接如您的防火墙无法正常运作。 在第一种情况下,只有您的ISP可以帮助您。在第二种情况下,你需要解决什么,那就是阻止你进入互联网。 如果您只有在部分尝试访问的网站中出现此问题,那就很可能是一个问题,即这些网站之一,其设备故障或超载。联系网站的管理员。默认排序

出现502的原因是:对用户访问请求的响应超时造成的

解决办法:

1.提高 Web 服务器的响应速度,也即减少内部的调用关系,可以把需要的页面、素材或数据,缓存在内存中,可以是专门的缓存服务器 ,也可以Web服务器自身的缓存,提高响应速度;

2.网络带宽的问题,则对传输的数据包进行压缩处理,或者向IDC申请增加带宽;

3.属于内部网络的故障或设置问题,也即内部网络拥塞,可能内部存在大量的数据调用或交互造成的,则需要优化内部网络传输或协议;

4.数据库的数据读取造成前端服务器 ,响应用户的请求变慢,那么必须提高数据库的处理能力,若是只读业务可以增加数据缓存的模式 或者增加数据库备机,分散读压力;

若是写的压力,则可以考虑延迟写的模式,想这个时候做数据写分散肯定来不及



提问的朋友,给你从上述4个方面综合提出了解答,不过具体从那些方面着手必须分析你们内部的真实情况,这个我们热璞科技团队 提供这块的服务,尤其双十一的时候是最容易出现的。 联系我们 - 热璞科技

关于502 bad gateway报错的解决办法


通俗解释一下
1.什么是502 bad gateway 报错
简单来说 502 是报错类型代码 bad gateway 错误的网关。
2.产生错误的原因
连接超时 我们向服务器发送请求 由于服务器当前链接太多,导致服务器方面无法给于正常的响应,产生此类报错
3.解救的办法
最好的解决办法当然还是在服务器上做 对大家来说不太可能
那么我们有什么解救的方法呢?
说白了 很简单
就是——刷新(不是一般的刷新哦)
刷新的原理:很多人可能不知道 刷新也是有两种的。
所谓刷新其实就是从服务
器下载数据到本地的硬盘浏览器,
再从本地硬盘中读取数据到浏览器显示给我们看。
①基本刷新:就是点击刷新或者使用F5快捷键
基本刷新只是从本地的硬盘重新拿取数据到浏览器,并不重新向服务器发出请求。
大部分用户很多时候都是这样刷新的,遇到502报错的就没有任何效果。
②从服务器刷新: 如果你重新直接点击你想要浏览的网页链接,你会发现刚才还是显示502 bad gateway的页面现在又可以正常浏览了!
明白道理了吧?当你点击你想要浏览的网页链接的时候,是会从服务器重新下载数据的。
解决方法就是从服务器上刷新:快捷键 ctrl+F5,这样就是重新向服务器发送请求了。
如果服务器能正常给予你响应你就可以看到页面了。

这类问题goole上面有很多,建议搜索
这个错误是由于服务器压力过大,不能及时处理client的请求导致服务器响应超时而抛出的错误。需要跟踪监控服务器的处理过程,对症解决。

我常在Nginx服务器上发现502错误,很多情况下并非Nginx本身的问题。就以Nginx+PHP+MySQL这种架构说明。

Nginx本身设置等cgi接口返回的数据延时太短,要延长这个时间。如同前面说的,很多情况下并非Nginx本身的问题,这样操作后常常并不能缓解问题。

此时,就要考虑对应cgi接口的配置,比如 php-fpm.conf 的配置,脚本执行时间的超时情况限制。这可以通过跟踪php-fpm的 slow log 来排查,对相关代码优化,减少延时。

另外很大的问题在MySQL数据库这一块,如果数据库执行命令超时也会大延长php脚本的执行时间,导致 Nginx 等待超时。可以my.cnf的 slow log进行确认效能低下的sql语句是哪些,进行优化配置。

通过优化 php-fpm 及 MySQL的配置都大大减少Nginx的等待超时的情况。

以上是LNMP的架构为例进行说明。

谢谢邀请!

  • 首先不好意思,国庆一直加班,没有上知乎。其次,我以前的工作基本没有遇到这个问题。可能帮不了你。忘谅解!
  • 这个问题的基本理论,其他人都说的差不多了,我不说了。
  • 问了一下同事(),某些商用web服务,也会遇到这个问题。

但你的问题应该还没有解决,访问量不大,服务器数量不多,所以问题应该还是你自己的网络、服务器搭建环境。给一些我自己的建议吧
  • 测试你的所有服务器(haproxy、web、db、others)的链接情况,简单点用curl命令。
  • 程序多打log,查看潜在问题
  • 测试单台服务器,看有没有服务中断的情况。
  • 将所有服务器的所有日志分别分析,我想问题就在其中,祝你好运!

补充:
程序这个东西,没有什么运气之说。有问题,一定是某个bug在。
有耐心的慢慢看看,可能隔一两天你就找到了。
我也遇到这个问题啊!怎么解决啊?关键是同一个网站,有的连接就没事有的就不行,这才是奇怪的把。。。

 

产生错误的原因

 

连接超时 我们向服务器器发送请求 由于服务器当前链接太多,导致服务器方面无法给于正常的响应,产生此类报错。

 

502 bad gateway怎么解决

 

普通访客

 

一般情况下稍候访问或者按下快捷键 ctrl+F5强制刷新一下,这样是重新向服务器发送请求了。再或者清理一下电脑的缓冲文件.(如果一直都是这样,我们只能等管理员来解决)

 

管理员

 

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

 

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

 

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

 

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

 

.....
http
{
......
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
......
}
......
php.ini中memory_limit设低了会出错,修改了php.ini的memory_limit为64M,重启nginx,发现好了,原来是PHP的内存不足了。

参考资料:502 bad gateway什么意思,502 bad gateway怎么解决

可以试试清空缓存下

不好意思,我碰到的50X的错误,大部分的都是错误本来异常了.
如果是这一种,那就排查错误

再碰到的,就是服务器压力太大.
如果是这一种,一般会做负载均衡处理了.
当然也有可能是程序对资源的使用和释放有问题,也会对相关的资源再做检查.
如果以上二种都没有资源再扩展(如:我们需要调用一个运营商的接口,他们做了并发10的控制- -!),这种情况,我们会对普通用户做拒绝访问控制,也就是当用户数达到10个并发,更多用户过来访问,我们就会提示用户稍后再试.
可以尝试清除浏览器缓存 访问一下你的FTP看是否可以登陆 产生原因 服务器(不一定是Web服务器)是作为网关或代理,以满足客户的要求(如Web浏览器或我们的CheckUpDown机器人)来访问所请求的URL 。此服务器收到无效响应从上游服务器访问履行它的要求。 固定502错误 一般这个问题是由于不良的IP之间的沟通后端计算机,包括您可能尝试访问的在Web服务器上的网站。在分析这个问题,您应该清除浏览器缓存完全。 如果您上网时在您尝试访问的所有网站上都看这个问题,有两种可能 1 )你的ISP了重大设备故障/过载或 2 )有问题的内部互联网连接如您的防火墙无法正常运作。 在第一种情况下,只有您的ISP可以帮助您。在第二种情况下,你需要解决什么,那就是阻止你进入互联网。 如果您只有在部分尝试访问的网站中出现此问题,那就很可能是一个问题,即这些网站之一,其设备故障或超载。联系网站的管理员。默认排序

出现502的原因是:对用户访问请求的响应超时造成的

解决办法:

1.提高 Web 服务器的响应速度,也即减少内部的调用关系,可以把需要的页面、素材或数据,缓存在内存中,可以是专门的缓存服务器 ,也可以Web服务器自身的缓存,提高响应速度;

2.网络带宽的问题,则对传输的数据包进行压缩处理,或者向IDC申请增加带宽;

3.属于内部网络的故障或设置问题,也即内部网络拥塞,可能内部存在大量的数据调用或交互造成的,则需要优化内部网络传输或协议;

4.数据库的数据读取造成前端服务器 ,响应用户的请求变慢,那么必须提高数据库的处理能力,若是只读业务可以增加数据缓存的模式 或者增加数据库备机,分散读压力;

若是写的压力,则可以考虑延迟写的模式,想这个时候做数据写分散肯定来不及



提问的朋友,给你从上述4个方面综合提出了解答,不过具体从那些方面着手必须分析你们内部的真实情况,这个我们热璞科技团队 提供这块的服务,尤其双十一的时候是最容易出现的。 联系我们 - 热璞科技

关于502 bad gateway报错的解决办法


通俗解释一下
1.什么是502 bad gateway 报错
简单来说 502 是报错类型代码 bad gateway 错误的网关。
2.产生错误的原因
连接超时 我们向服务器发送请求 由于服务器当前链接太多,导致服务器方面无法给于正常的响应,产生此类报错
3.解救的办法
最好的解决办法当然还是在服务器上做 对大家来说不太可能
那么我们有什么解救的方法呢?
说白了 很简单
就是——刷新(不是一般的刷新哦)
刷新的原理:很多人可能不知道 刷新也是有两种的。
所谓刷新其实就是从服务
器下载数据到本地的硬盘浏览器,
再从本地硬盘中读取数据到浏览器显示给我们看。
①基本刷新:就是点击刷新或者使用F5快捷键
基本刷新只是从本地的硬盘重新拿取数据到浏览器,并不重新向服务器发出请求。
大部分用户很多时候都是这样刷新的,遇到502报错的就没有任何效果。
②从服务器刷新: 如果你重新直接点击你想要浏览的网页链接,你会发现刚才还是显示502 bad gateway的页面现在又可以正常浏览了!
明白道理了吧?当你点击你想要浏览的网页链接的时候,是会从服务器重新下载数据的。
解决方法就是从服务器上刷新:快捷键 ctrl+F5,这样就是重新向服务器发送请求了。
如果服务器能正常给予你响应你就可以看到页面了。

这类问题goole上面有很多,建议搜索
这个错误是由于服务器压力过大,不能及时处理client的请求导致服务器响应超时而抛出的错误。需要跟踪监控服务器的处理过程,对症解决。

我常在Nginx服务器上发现502错误,很多情况下并非Nginx本身的问题。就以Nginx+PHP+MySQL这种架构说明。

Nginx本身设置等cgi接口返回的数据延时太短,要延长这个时间。如同前面说的,很多情况下并非Nginx本身的问题,这样操作后常常并不能缓解问题。

此时,就要考虑对应cgi接口的配置,比如 php-fpm.conf 的配置,脚本执行时间的超时情况限制。这可以通过跟踪php-fpm的 slow log 来排查,对相关代码优化,减少延时。

另外很大的问题在MySQL数据库这一块,如果数据库执行命令超时也会大延长php脚本的执行时间,导致 Nginx 等待超时。可以my.cnf的 slow log进行确认效能低下的sql语句是哪些,进行优化配置。

通过优化 php-fpm 及 MySQL的配置都大大减少Nginx的等待超时的情况。

以上是LNMP的架构为例进行说明。

谢谢邀请!

  • 首先不好意思,国庆一直加班,没有上知乎。其次,我以前的工作基本没有遇到这个问题。可能帮不了你。忘谅解!
  • 这个问题的基本理论,其他人都说的差不多了,我不说了。
  • 问了一下同事(),某些商用web服务,也会遇到这个问题。

但你的问题应该还没有解决,访问量不大,服务器数量不多,所以问题应该还是你自己的网络、服务器搭建环境。给一些我自己的建议吧
  • 测试你的所有服务器(haproxy、web、db、others)的链接情况,简单点用curl命令。
  • 程序多打log,查看潜在问题
  • 测试单台服务器,看有没有服务中断的情况。
  • 将所有服务器的所有日志分别分析,我想问题就在其中,祝你好运!

补充:
程序这个东西,没有什么运气之说。有问题,一定是某个bug在。
有耐心的慢慢看看,可能隔一两天你就找到了。
我也遇到这个问题啊!怎么解决啊?关键是同一个网站,有的连接就没事有的就不行,这才是奇怪的把。。。

 

产生错误的原因

 

连接超时 我们向服务器器发送请求 由于服务器当前链接太多,导致服务器方面无法给于正常的响应,产生此类报错。

 

502 bad gateway怎么解决

 

普通访客

 

一般情况下稍候访问或者按下快捷键 ctrl+F5强制刷新一下,这样是重新向服务器发送请求了。再或者清理一下电脑的缓冲文件.(如果一直都是这样,我们只能等管理员来解决)

 

管理员

 

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

 

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

 

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

 

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

 

.....
http
{
......
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
......
}
......
php.ini中memory_limit设低了会出错,修改了php.ini的memory_limit为64M,重启nginx,发现好了,原来是PHP的内存不足了。

参考资料:502 bad gateway什么意思,502 bad gateway怎么解决

可以试试清空缓存下

不好意思,我碰到的50X的错误,大部分的都是错误本来异常了.
如果是这一种,那就排查错误

再碰到的,就是服务器压力太大.
如果是这一种,一般会做负载均衡处理了.
当然也有可能是程序对资源的使用和释放有问题,也会对相关的资源再做检查.
如果以上二种都没有资源再扩展(如:我们需要调用一个运营商的接口,他们做了并发10的控制- -!),这种情况,我们会对普通用户做拒绝访问控制,也就是当用户数达到10个并发,更多用户过来访问,我们就会提示用户稍后再试.
可以尝试清除浏览器缓存 访问一下你的FTP看是否可以登陆 产生原因 服务器(不一定是Web服务器)是作为网关或代理,以满足客户的要求(如Web浏览器或我们的CheckUpDown机器人)来访问所请求的URL 。此服务器收到无效响应从上游服务器访问履行它的要求。 固定502错误 一般这个问题是由于不良的IP之间的沟通后端计算机,包括您可能尝试访问的在Web服务器上的网站。在分析这个问题,您应该清除浏览器缓存完全。 如果您上网时在您尝试访问的所有网站上都看这个问题,有两种可能 1 )你的ISP了重大设备故障/过载或 2 )有问题的内部互联网连接如您的防火墙无法正常运作。 在第一种情况下,只有您的ISP可以帮助您。在第二种情况下,你需要解决什么,那就是阻止你进入互联网。 如果您只有在部分尝试访问的网站中出现此问题,那就很可能是一个问题,即这些网站之一,其设备故障或超载。联系网站的管理员。

来自  https://www.zhihu.com/question/21647204
普通分类: