我有一个EC2实例,在Ubuntu上运行Node.Js服务器。
我的目标是:
当前,我只能在端口3000(http://prntscr.com/livali)上使用EC2实例的Public Ip
打开网站。 Https请求或到端口80的Http不起作用(http://prntscr.com/livau2)。在实例区域A
上在托管区域中进行了Public Ip
记录,无法通过托管区域(http://prntscr.com/liv9no)打开实例。
我真的很困惑,因为我无法以某种方式启动并运行它。我将非常感谢您逐步指导如何设置整个过程。
答案 0 :(得分:3)
如果您已经拥有SSL证书,则仅使用端口443而不使用端口80是安全的。
1)创建一个面向Internet的Application Load Balancer,它侦听端口443并将流量路由到端口3000上的EC2实例。
2)通过HTTP访问您的域时,将用户重定向到HTTPS https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#redirect-actions
2)添加A记录,以将您的域名指向负载均衡器的公共DNS。
答案 1 :(得分:0)
这些是Web服务器问题,而不是DNS问题。您需要设置NGINX或Apache之类的东西,以将端口80代理到端口3000。有关信息,请参见Apache redirect to another port。
您还可以在Apache:https://wiki.apache.org/httpd/RewriteHTTPToHTTPS
中使用重写规则来强制HTTPS。强制HTTPS的另一个选项是创建CloudFront发行版并使用它。 https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html