服务器常见错误代码500、501、502、503、504、505区别

服务器常见错误代码500、501、502、503、504、505区别

 

502 Bad Gateway表示服务器作为网关或代理,从上游服务器(如应用服务器、负载均衡器等)接收到无效的响应。这通常意味着上游服务器出现了故障或网络连接中断,导致无法正常响应请求。此时,客户端可以尝试重新发送请求,或者联系网站管理员解决问题。

503 Service Unavailable表示服务器暂时无法处理请求,通常是由于服务器过载、维护或升级等原因导致。此时,客户端可以尝试稍后再次发送请求,或者联系网站管理员了解更多信息。

总之,502 Bad Gateway表示上游服务器出现问题,而503 Service Unavailable表示服务器本身出现问题。

服务器环境设定:

  • 以 nginx 作为 web server
  • 以 php 为后端编程语言

500 Internal Server Error (检查你的代码吧)

顾名思义500错误一般是服务器遇到意外情况,而无法完成请求;
一般解决思路:查看nginx、php的错误日志文件;
500 错误的可能原因:

  • a、编程语言语法错误,脚本错误
  • b、并发高时,因为系统资源限制,不能打开过多的文件描述符(fd)

502 错误网关 — 服务器接收到来自上游服务器的无效响应。

503 无法获得服务 — 由于临时过载或维护,服务器无法处理请求。

502:简单点说,处理当前 nginx 请求的 php(进程OR服务器) 已经挂掉了;
nginx 在这里充当的是反向代理服务器的角色,是把http协议请求转成 fastcgi 协议的请求,通过 fastcgi_pass 指令传递给 php-fpm 进程,当nginx执行请求时,却收到了上游服务器( php-fpm)的无效响应,响应内容是nginx无法理解的,就会返回502 bad gateway;可以尝试刷新缓存(ob_flush);

503:简单点说,用户请求数(并发)过大;
当前请求用户量太多,服务器为了保护自己不挂掉,机智的拒绝了某些用户的访问,这些用户就会收到503这个错误(部分用户可正常访问);
因为一个 http 请求会占用一个 php-fpm 进程,瞬时请求量过大时,没有足够的 php-fpm 进程来处理请求,就会返回 503 service unavailable;
常见原因:

1、站点遭到攻击,在超过限制时报503错误,待攻击停止就可以恢复了;
2、站点规模较大,并发请求过多,这种建议修改优化程序或需要升级更高类型主机;
3、程序有错误,在短时间内产生多次工作进程崩溃,会因IIS7的快速故障防护功能而关闭程序池;
4、站点提供下载,当带宽超过限制时会报错,需停止下载功能,或者升级主机解决。

504:简单点说,请求超时,页面等了半天也没打开,返回504
一般而言,504很少会遇到,通常是由 nginx 配置不当引起;
也可能是脚本逻辑没考虑特例情况,比如 SQL 执行时间太久;
专业点儿说就是,单个 php-fpm 进程阻塞超过 nginx 的时间阈值,会返回 504 gateway timeout,例如,PHP脚本执行时间太长,此时可查看是否某些代码逻辑产生了阻塞;
比如你的 nginx 超时时间设为300,但你的请求响应时间为500,超过了300的阈值,就会看到504;

以下两种状态极少遇到

501  
服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码;
505  
服务器不支持请求中所用的 HTTP 协议版本(HTTP 版本不受支持);

posted @ 2023-05-12 09:21  滴滴滴  阅读(1426)  评论(0编辑  收藏  举报