amazon-web-services – AWS ELB“抱歉,网站已关闭”页面

我有一个基本的ELB v2站点.没有聚类或任何东西.我对AWS很缺乏经验.

我的堆栈是nginx / uwsgi / django其他一些服务.

我想知道是否有人想过制作一个“抱歉,网站目前正在关闭…” – 样式页面(自定义文本我可以更新计划停机时间是一个额外的奖励!)无论什么原因导致停机,以及健康状况实例是红色的.亚马逊似乎没有提供这种功能 – 我错过了什么吗?有没有办法创建一个单独的,超小的实例,只有主要的红色或其他东西?

谢谢!

最佳答案
这里简单而酷炫的解决方案是将您的ELB置于CloudFront之后.

如果源服务器(在这种情况下为ELB)抛出5XX错误(如果您愿意,则抛出4XX),CloudFront可以返回custom error page,您可以通过创建指向存储桶的第二个源来配置CloudFront以从S3存储桶获取创建缓存行为路由(例如)/ errors / static / *到存储桶.

由于一个重要原因,这比Route 53故障转移效果更好……一个致命的缺陷,如果你愿意的话…浏览器很难缓存DNS查找的时间远远超出预期. DNS TTL不相关.

从本质上讲,一旦浏览器掌握了DNS条目,它就会继续尝试使用它…通常,直到所有浏览器窗口都关闭.

因此,如果您的网站因为已经在网站上的访问者而关闭,他们就不太可能看到备用网站.

更糟糕的是,如果访问者在网站关闭时第一次访问您的网站,他们将“坚持”在维护页面上,直到他们关闭所有浏览器窗口.

如果您使用故障转移DNS,那么只有当故障转移目标仍然是您的应用程序时,这才真正有用,可能就在更远的地方.

如果您不需要,可以关闭CloudFront的缓存.

您还可以将CloudFront的错误缓存TTL配置为非零值,如果您希望它在停止并尝试恢复时停止锤击您的站点.对于抛出错误的给定页面,它将继续显示错误页面,并且在错误CachingTTL到期之前不会对您的服务器提出更多请求.

转载注明原文:amazon-web-services – AWS ELB“抱歉,网站已关闭”页面 - 代码日志