• 502:Bad Gateway 网关错误。nginx在做反向代理时,后端服务不可达(服务刚好死掉了或在启动过程中,即没有完全起来,大部分情况可能是重新发布工程或回滚工程的过程中)。

  • 503:服务不可用Service Unavailable。一般是服务器过载,服务器当前无法处理请求

  • 504:Gateway Timeout 网关超时。一般是连接超时或响应超时。

 

一般502、503、504报错对大部分码农来说只是简单了解它们的意思或知道出现的可能几种情况,至于怎么处理,可能大部分人都不太了解,

一种解决思路是:对于502、503、504的报错,我们给它一次请求重试的机会,具体做法就是在nginx中增加对error_page的处理,将502、503、504的请求再一次转发到fallback下的一个小集群或独立的一台服务器上。



再补充一小点:

error_page 502 = @fallback  与 error_page 502 = 200 @fallback 是等效的,等号后面默认值就是200.

error_page 502 @fallback 如果不加这个等号,即便fallback访问成功,客户端拿到的状态码还是第一次访问失败的状态码。