【问题标题】:Redirection http to https fails when instance scales up in AWS elastic beanstalk?当实例在 AWS 弹性 beantalk 中扩展时,将 http 重定向到 https 失败?
【发布时间】:2018-01-08 00:02:03
【问题描述】:

我们在 AWS elastic beanstalk 上托管了一个应用程序,我们能够成功地从 example.com 重定向到 https://www.example.com

如果我的应用程序有更多负载,那么 Auto Scaling 组会在后端再添加一个 EC2 实例来处理负载。

假设 InstanceA 正在运行并且负载增加并添加了 InstanceB,当负载正常时,自动扩展组终止其中一个实例,目前在我的应用程序中它正在删除旧的现有 InstanceA,我们所有的重定向规则都写在 InstanceA 上,所以当实例扩展时,我的应用程序重定向失败。

请帮忙,有没有办法保留我现有的实例?还是我们需要为每个启动的实例编写相同的重定向规则?

ELB 如下所示 -

【问题讨论】:

  • InstanceA 创建后是否要修改它?为什么InstanceA只有重定向规则,InstanceB没有?
  • 您能否分享您的基础架构的更多细节?例如,您使用的是负载均衡器吗?

标签: .htaccess amazon-web-services redirect amazon-ec2 amazon-elastic-beanstalk


【解决方案1】:

即使您可以控制在您的 ASG(Auto Scaling 组)收缩时删除哪个实例,这也不是一个好的解决方案:您的“InstanceA”可能由于其他原因(例如 EBS 卷故障等)而被删除。 )

您不应该遇到只有“InstanceA”持有重定向规则的情况。重定向规则应该在所有实例上。

您的问题也不仅限于“InstanceA”被删除的时间。启动“InstanceB”时,可以先将用户发送到那里(从而满足您的负载平衡),并且需要那些重定向规则。

您永远不应在 ASG 后面手动编辑单个 EC2 实例。所有 EC2 实例都应视为临时且可删除。

在部署您的应用程序版本时,您的重定向规则应应用于每个 EC2 实例。

【讨论】:

  • 我们的基础设施 - AWS ElasticBeanstalk 与 ELB 和 ASG 规则相关联。
  • 我们的基础设施 - AWS ElasticBeanstalk 与 ELB 和 ASG 规则相关联。目前我们正在 /etc/httpd/conf/httpd.conf 文件中手动编写重定向规则,您能指导我如何在 ELB 中编写相同的规则吗?目前我们正在使用带有 PHP 应用程序的 linux 机器。
  • 看看使用.ebextensions文件自定义环境:docs.aws.amazon.com/elasticbeanstalk/latest/dg/…
【解决方案2】:

对于诸如 EC2 工作人员使用 SQS 消息、EC2 工作人员处理大量数据等场景,您可以使用 AutoScaling,仅此而已。

现在,对于您的场景,您肯定需要负载均衡器和 AutoScaling,并对负载均衡器的 dns 进行任何重定向。

因此,我建议您在 Beanstalk 的环境中配置负载均衡器来完成您的场景。

希望对您有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-22
    • 2018-01-12
    • 2018-01-29
    • 1970-01-01
    • 2019-06-07
    • 2020-02-19
    • 2013-07-20
    • 2019-06-12
    相关资源
    最近更新 更多