我有一个在Ubuntu上运行Node.Js服务器的EC2实例。
我的目标是:
目前,我只能在端口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)打开实例。
我真的很困惑,因为我无论如何都无法让它运行起来。我真的很感激有关如何设置这一切的分步指南。
如果您已拥有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。
这些是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