AWS Application Load Balancer HTTP到HTTPS与EC2实例

问题描述 投票:2回答:2

我有一个在Ubuntu上运行Node.Js服务器的EC2实例。

我的目标是:

  1. 将我的托管区域连接到EC2实例
  2. 将所有传入流量从端口80路由到端口3000(因为我的服务器在端口3000上运行)
  3. 最重要的是使用应用程序负载均衡器将所有请求转发到HTTPS(我已在证书管理器中创建了SSL证书)。

目前,我只能在端口3000(Public Ip)上使用EC2 intances'http://prntscr.com/livali打开网站。 Https请求或Http到端口80不起作用(http://prntscr.com/livau2)。 Altought a使用实例'A在我的托管区域创建了Public Ip记录,无法通过托管区域(http://prntscr.com/liv9no)打开实例。

我真的很困惑,因为我无论如何都无法让它运行起来。我真的很感激有关如何设置这一切的分步指南。

amazon-web-services amazon-ec2 https amazon-route53 amazon-elb
2个回答
3
投票

如果您已拥有SSL证书,则仅使用端口443而不是端口80是安全的。

1)创建面向应用程序负载均衡器的Internet,该应用程序负载均衡器侦听端口443并将流量路由到端口3000上的EC2实例。

2)在HTTP https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#redirect-actions上访问您的域时,将用户重定向到HTTPS

2)添加A记录,将您的域名指向Load Balancer的公共DNS。


0
投票

这些是Web服务器问题而不是DNS问题。您需要设置像NGINX或Apache这样的东西来将端口80代理到端口3000.有关信息,请参阅Apache redirect to another port

您还可以在Apache中使用重写规则强制HTTPS:https://wiki.apache.org/httpd/RewriteHTTPToHTTPS

强制HTTPS的另一个选择是创建CloudFront分配并使用它。 https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html

© www.soinside.com 2019 - 2024. All rights reserved.