Vla*_*kiy 17 load-balancing amazon-ec2 amazon-web-services maintenance-mode
我正在使用AWS Load Balancer和3台EC2服务器,而我正在尝试在网站维护时提供维护页面.
此页面需要返回503 HTTP代码,因为它是维护模式的正确代码,可以防止SEO的可能问题.
当我从任何服务器返回503代码时,Load Balancer将其设置为"Not In Service",当所有服务器返回503时,网站返回一个空白页面(因为所有服务器都断开连接).
我的问题是:
1)如果没有健康的服务器,有没有办法为负载均衡器的访问者提供带有消息的自定义静态页面?
2)或者如何配置Load Balancer的健康检查它不会将503视为将服务器标记为"不健康"的原因?
谢谢!
jar*_*mod 12
你可以在app服务器中实现一个额外的路由,比方说/ hcm(用于健康检查维护),总是响应200 OK.在维护时,您以编程方式修改ELB运行状况检查以使用/ hcm目标,该目标返回200 OK而不是/或/index.html,这两者都返回503 Service Unavailable.退出维护时还原这些更改.
小智 12
我一直在寻找一种快速的方法来做到这一点。我们需要在数据库升级期间向全世界返回 503 错误,但将开发人员的一些 IP 列入白名单,以便他们可以在重新向公众开放之前对其进行测试。
找到了一个单一的解决方案:转到 EC2 中的 Loader Balancer 并选择您想要定位的负载均衡器。在下面,您应该会看到 Listeners。单击侦听器,然后编辑规则。创建这样的规则:
现在每个人都会得到一个漂亮的维护页面,返回一个 503 错误代码,并且第一条规则中只有两个 IP 地址能够浏览到该站点。顺序很重要,两个 IP 例外在最前面,然后在列表中。默认情况下,最后一项始终存在。
应用程序负载均衡器的侦听器规则:https : //docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-update-rules.html
小智 5
可能不满足您的 503 要求,但使用 s3 和 dns 故障转移是一个不错的选择:https : //aws.amazon.com/blogs/aws/create-a-backup-website-using-route-53-dns-failover -and-s3-website-hosting/
| 归档时间: |
|
| 查看次数: |
11721 次 |
| 最近记录: |