如何在没有负载均衡器的情况下设置 Cloudflare、自定义域、SSL 和 Elastic Beanstalk

如何在没有负载均衡器的情况下设置 Cloudflare、自定义域、SSL 和 Elastic Beanstalk

背景研究

我目前正在完善一个项目的基础设施,我意识到在安装 SSL 证书时遇到了一个小问题。我在网上进行了大量研究,但许多文章似乎相互矛盾,因此,我觉得最好在这里提出一个问题...

我的设置

我当前的设置如下(仅相关部分):

  • 由 Route 53 管理的自定义域 DNS(笔记- 我打算将其迁移到 Cloudflare)
  • 该应用程序使用 Elastic Beanstalk 服务托管(没有负载均衡器)
  • www.example.com转发至example.com- 这是相关的,因为 DNS 管理

我的问题

我考虑过发布几个单独的问题,但由于每个问题都相互关联,我认为最好将它们合并为一个。以下是我想要实现的目标:

  • 重写/重定向{subdomain}.elasticbeanstalk.com到自定义域(由于各种原因我想隐藏 Elastic Beanstalk 域)
  • 从 Cloudflare 管理我的 DNS(我犹豫是否指向我的弹性 IP,因为如果重建环境,这将会改变)
  • 确保所有请求均在 HTTPS 下提供(Cloudflare 将为自定义域处理此问题)

我的问题(以及建议的解决方案)

  1. 是否可以将 Elastic Beanstalk 域重写/重定向到我的自定义域?我认为这无法完成,因为 Web 服务器 (Apache) 将需要 EB 域...
  2. 如果1.无法完成,有没有办法在没有负载均衡器的情况下在 EB 实例上启用 SSL,或者阻止外界访问它(同时仍然允许我的自定义域重写它,我对此表示怀疑......)。简而言之,如果 EB 实例是公开可访问的,它必须强制 SSL。我担心实现此目的的唯一方法是向我的 .ebextensions 添加一些 apache 配置...
  3. 我可以依靠 EB 关联的弹性 IP 将我的 A 记录从 Cloudflare 管理的 DNS 转发到吗?

附加信息

Cloudflare

多年来,我一直使用 Cloudflare 来进一步优化我所建网站的内容。虽然许多优化工作都可以由我自己在服务器上完成(我确实这样做了),但 Cloudflare 提供了大量附加功能,使其作为访问者和服务器之间的“中间人”发挥了巨大作用。为了获得 Cloudflare 的好处,必须使用 Cloudflare 管理其 DNS,因此我放弃了 Route 53。

弹性 IP

我认为我的弹性 IP 可能会改变的原因很简单,因为 Elastic Beanstalk 会在需要重建“环境”时删除并重建所有服务。虽然我知道我极不可能重建我的环境,但这意味着还有另一件事需要考虑,以便进行持续维护

相关内容