【问题标题】:Elastic Beanstalk Alias Without Load Balancer没有负载均衡器的 Elastic Beanstalk 别名
【发布时间】:2020-11-21 21:29:55
【问题描述】:

我有一个使用负载均衡器部署的 Elastic Beanstalk (EB) 应用程序。在 Route53 中,我定义了一个别名 myapp.mydomain.com 来指向 EB url。它工作正常。
但是当我将 EB 环境类型更改为“单实例”(从“负载平衡”)时,别名不再起作用。

有没有办法为非负载平衡环境使用别名?

【问题讨论】:

  • EB url 无论是单实例还是负载均衡都应该有效。事实上它应该是完全一样的。因此,指向 EB url 的 myapp.mydomain.com 不应该受到影响。您是否观察到 EB 网址发生了变化?或者您的应用在使用 EB url 时是否正常工作?
  • 应用程序 URL 是相同的并且可以正常工作(不是别名)。我已将 http 重定向到 https。这是在负载平衡器设置中完成的。不确定这是否是我将环境更改为单实例时它不起作用的原因。
  • 我明白了。那么在您在 ALB 上获得 ssl 证书之前?如果没有 ALB,您将无法在 EB 实例上部署相同的证书。是来自 ACM 的 ssl 证书吗?
  • 证书来自 ACM,位于 *.mydomain.com。 https 设置位于 EB 的负载均衡器部分。如果我选择单实例,则无法访问此部分,那么在这种情况下,我可以在哪里设置 https?
  • 我稍后会详细回答。

标签: amazon-elastic-beanstalk amazon-route53 aws-load-balancer


【解决方案1】:

基于 cmets。

问题是由 ACM SSL 证书引起的。在负载平衡的 EB 环境中,SSL 证书部署在 ALB 上。这为您的环境提供了 HTTPS 功能。

单实例 EB 环境没有任何负载平衡器。因此,您必须直接在您的 EB 实例上提供 SSL 证书。但是,ACM ssl 证书不能在实例上使用

要纠正问题,您有两种选择

client----HTTPS (ACM SSL cert)---->CF----HTTP---->EB

如您所见,在 CF 和您的 EB 实例之间您将有 HTTP 流量,这可能是不希望的。要解决此问题,您不能使用自签名证书或 ACM 证书。您需要来自第三方的public ssl 证书,例如免费的https://letsencrypt.org/

这将我们带到第二个选项:

  • 直接在您的实例上安装新的公共证书。 ACM ssl 证书不能在实例上使用。您需要来自第三方的新的。一个流行的选择是https://letsencrypt.org/。您必须在 EB 实例上配置 nginx 以提供 ssl 证书;随后,为您提供 HTTPS 功能。

使用此选项,您将拥有:

client----HTTPS (third party SSL cert)---->EB

【讨论】:

    猜你喜欢
    • 2011-12-22
    • 2017-09-28
    • 2013-08-10
    • 2019-04-21
    • 2017-02-14
    • 2018-04-23
    • 2014-02-11
    • 2021-01-01
    • 2020-10-11
    相关资源
    最近更新 更多