std*_*ave 11 amazon-web-services elastic-beanstalk
我有一个基本的 ELB v2 站点。还没有聚类或任何东西。我对 AWS 非常缺乏经验。
我的堆栈是 nginx/uwsgi/django + 一些其他服务。
我想知道是否有人想过制作“对不起,网站目前已关闭...”样式的页面(我可以更新计划的停机时间的自定义文本是一种奖励!)无论何时出现停机,以及实例是红色的。亚马逊似乎没有提供这种功能 - 我错过了什么吗?有没有办法创建一个单独的超小型实例,该实例仅在主要实例为红色或其他情况时提供服务?
谢谢!
Mic*_*bot 25
这里简单而酷的解决方案是将您的 ELB 置于 CloudFront 之后。
如果源服务器(在本例中为 ELB)抛出 5XX 错误(或 4XX,如果您愿意),CloudFront 可以返回自定义错误页面,您可以将 CloudFront 配置为通过创建指向 S3 存储桶的第二个源来获取存储桶并创建缓存行为路由(例如)/errors/static/*到存储桶。
由于一个重要原因,这比 Route 53 故障转移更有效......这是一个致命的缺陷,如果你愿意......浏览器缓存 DNS 查找的时间比你预期的要长得多。DNS TTL 不相关。
本质上,一旦浏览器掌握了 DNS 条目,它就会不断尝试使用它……通常,直到关闭所有浏览器窗口。
因此,如果您的网站因已经在该网站上的访问者而关闭,他们就不太可能看到备用网站。
更糟糕的是,如果访问者在网站关闭时第一次访问您的网站,他们会“停留”在维护页面上,直到他们关闭所有浏览器窗口。
如果您使用故障转移 DNS,那么只有当故障转移目标仍然是您的应用程序(可能只是更远)时,这确实很好。
如果不需要,您可以关闭 CloudFront 的缓存。
您还可以将 CloudFront 的错误缓存 TTL 配置为非零值,如果您希望它在站点关闭并尝试恢复时停止攻击您的站点。对于抛出错误的给定页面,它会一直显示错误页面,并且不会通过对该页面的更多请求来打扰您的服务器,直到 Error CachingTTL 到期。
| 归档时间: |
|
| 查看次数: |
15469 次 |
| 最近记录: |