502, 503和504的区别

Http状态码中502, 503, 504的区别是什么

阅读 37k
4 个回答

背景:

  • 以nginx作为web server

  • 以php为后台语言

502:nginx在这里充当的是反向代理服务器的角色,是把http协议请求转成fastcgi协议的请求,通过fastcgi_pass指令传递给php-fpm进程,当php-fpm进程响应的内容是nginx无法理解的响应,就会返回502 bad gateway
503:一个http请求占用一个php-fpm进程,瞬时请求量过大时,没有足够的php-fpm进程去处理请求,就会返回503 service unavailable
504:单个php-fpm进程阻塞超过nginx的时间阈值返回504 gateway timeout

简单的说:
502
灾难事件: 在某个连着两天的早晨9:00 左右,我们的服务器不幸挂掉了,影响了一批用户上班(早上着急上班骑不了自行车了,/捂脸)。当时打开我们的app和公司内部系统,报错都是502。
问题原因:服务器冷不丁坏掉了
解释:出现502错误,通常意味着一两个机器已经不正确,简单点说,就是机器挂掉了。理论点儿说,nginx执行请求的时候,却收到了上游服务器的无效响应
503
灾难事件:临时的服务器维护/过载,服务器当前无法处理请求,报503
问题原因:请求用户量太多,服务器为了保护自己不挂掉,机智的拒绝某些用户的访问,这些用户就会收到503这个错误
解决办法: 等一会儿仔访问该网站或者尝试强刷新页面,问题一般就能够解决了。
504
事件描述:dns查询过程超时,返回504;摸不着头脑,不管访问什么网站,都报504这个错误
问题原因:nginx或者后端配置不正确
解决办法:上网查nginx或后端的配置参数是否正确或者合理
解释: 实际上504很少会遇到,通常这个错误是由于nginx配置不当引起的,比如你将你的nginx的超时时间设置为300,那么如果此次请求的响应时间超过了300,你就会看到504这个报错。明白了吧。官方说法:请求超时

找了一张图,瞅瞅
图片描述

宣传栏