即使ELB本身报告后端服务器健康,浏览器是不是也会缓存ELB的503状态?

Posted

技术标签:

【中文标题】即使ELB本身报告后端服务器健康,浏览器是不是也会缓存ELB的503状态?【英文标题】:Does browsers cache the 503 status of an ELB even after the ELB itself reports the backend servers are healthy?即使ELB本身报告后端服务器健康,浏览器是否也会缓存ELB的503状态? 【发布时间】:2019-12-19 12:05:54 【问题描述】:

当后端服务器宕机(维护)时,ELB 正确返回 503 状态。但是,当服务器返回时,在ELB的Instances选项卡中列为InService,URL仍然返回503。这是因为浏览器中的某种状态缓存,还是其他一些因素参与?

谢谢

【问题讨论】:

浏览器根本不应该缓存错误响应。要进行验证,请考虑使用 curl 等命令行工具,它不会在请求之间执行任何缓存。 【参考方案1】:

浏览器不会缓存任何错误响应。 GET 请求通常被缓存,POST 请求默认不被缓存,其他请求如 PUT、DELETE 没有任何缓存设施。

它应该主要是 ELB 花时间在您的机器上执行健康检查并将请求传递给服务器并返回停止服务(5XX)响应。

【讨论】:

以上是关于即使ELB本身报告后端服务器健康,浏览器是不是也会缓存ELB的503状态?的主要内容,如果未能解决你的问题,请参考以下文章

ELB 总是将实例报告为 inservice

健康检查类型ELB具有多个负载均衡器

ELB 健康检查行为 - 健康阈值

即使目标组健康检查失败,NLB 是不是会转发到 ALB?

即使后端 API 被执行,Hystrix 也会调用 fallbackMethod

elb健康检查和ec2健康检查有啥区别?