![如何在 AWS 中执行外部维护模式,同时保持站点对内部用户的正常运行?](https://linux22.com/image/687983/%E5%A6%82%E4%BD%95%E5%9C%A8%20AWS%20%E4%B8%AD%E6%89%A7%E8%A1%8C%E5%A4%96%E9%83%A8%E7%BB%B4%E6%8A%A4%E6%A8%A1%E5%BC%8F%EF%BC%8C%E5%90%8C%E6%97%B6%E4%BF%9D%E6%8C%81%E7%AB%99%E7%82%B9%E5%AF%B9%E5%86%85%E9%83%A8%E7%94%A8%E6%88%B7%E7%9A%84%E6%AD%A3%E5%B8%B8%E8%BF%90%E8%A1%8C%EF%BC%9F.png)
有人能告诉我如何将 AWS 中的站点设置为维护模式,供外部用户(即世界各地的人)使用,但让内部用户(即公司网络上的用户)使用该站点吗?以下是我们的云拓扑:
mysite.abc.com -> CloudFlare -> AWS Route53 -> AWS ELB -> AWS EC2
我只需使用 Route53 中的加权路由并将所有请求发送到 CloudFront/S3 中的维护页面,即可轻松将网站置于所有人的维护模式。不过,我不知道如何根据客户端 IP 进行选择性重定向。谢谢。
答案1
ELB 和 Route53 无法根据源 IP 改变流量。
我可能会采用的一些选择:
- 创建第二个域名,专门且仅供内部用户知道
- 更改您本地(公司)的 DNS 解析器,使其指向正确的 ELB,同时重定向其他所有人(外部)。
- 在 EC2 实例上设置重定向服务,例如使用 Nginx,将所有非公司 IP 重定向到 CloudFront,然后通过 proxy_passes 将其余 IP 转发到您的应用程序
最后一个是最灵活的,可能会在其他方面给你带来好处,比如能够进行紧急故障转移等