【问题标题】:Point namesilo domain to EC2 instance with specific port将 namesilo 域指向具有特定端口的 EC2 实例
【发布时间】:2021-01-31 19:44:13
【问题描述】:
我真的不知道从哪里开始,其他问题与 GoDaddy 相关,它似乎与 namesilo 有足够不同的 CNAME 配置区域,我看不到相似之处。
我在 namesilo 上购买了域名,现在想指向 EC2 实例 但是
我在 EC2 上的应用程序在端口 8069 上运行,并且也不是 https(没有 SSL 证书?),所以我必须输入
http://MY.IP.ADD:8069 让它显示出来。
如果我进入,任何人都知道我可以做些什么来检索我的 EC2 应用程序
www.mydomain.com(不含端口号)
AWS 实例和 Route 53“托管区域”
名称筒仓
此外,我不想担心 https 会导致“此站点无法提供安全连接”
ERR_SSL_PROTOCOL_ERROR'
感谢您的任何帮助,谢谢!
【问题讨论】:
标签:
amazon-ec2
dns
odoo
amazon-route53
【解决方案1】:
为了能够在浏览器中输入您的域名并将其解析为公共 IP,您需要在您的注册商 (namesilo) 为您的域配置 A(或 IPv6 的 AAAA)记录。
A/AAAA DNS 记录不提供映射到特定端口的能力。因此,当您在浏览器中输入 http://<yourdomain> 时,浏览器会将 <yourdomain> 解析为在您的域注册商的 DNS 配置中配置的 IP 地址,然后它会在端口 80 上启动到该 IP 的 TCP 连接(默认HTTP 端口)。对于 HTTPS,它是端口 443。
由于您的应用程序没有在端口 80(或 HTTPS 的 443)上侦听,因此您需要有一些服务器确实在这些端口上侦听并在来自浏览器的 80 或 443 端口的传入连接以及与您的应用程序的 8069 端口的连接。
因为您还希望 SSL 与 HTTPS,这里有几个选项:
-
在您的 EC2 实例上安装支持 SSL/HTTPS 的代理服务器,例如 nginx 或 Apache HTTP 服务器或任何其他变体,作为您自己的应用程序在端口 8069 上的反向代理。为您的域获取 SSL 证书,你可以简单地使用letsencrypt。有关于如何在 AWS EC2 实例(使用 Amazon Linux 2)上安装letsencrypt证书的教程。
-
对代理部分使用 AWS 应用程序负载均衡器 (ALB) 或网络负载均衡器 (NLB)。 ALB/NLB 将侦听 80/443 并在其端口上转发到您的应用程序。因此,ALB/NLB 也将执行 TLS 终止。在这里,您可以通过 AWS Certificate Manager (ACM) 颁发 SSL 证书并将其安装在 AWS ALB 上的域中。接下来,为您的 ALB 配置侦听器规则,以在其端口上定向到您的 EC2 实例。
到目前为止,AWS 提供的 DNS 服务 Route 53 尚未在解决方案中发挥作用。但是,您可以(如果您的注册商在配置中支持它 - 但我认为namesilo 实际上确实 用于顶点记录)使用 DNS 委托:
在这里,如果您有一个与您的自定义域同名的 Route 53 公共托管区域,您将获得一个由 AWS 提供的通常四个名称服务器的列表,然后您可以将它们与您的 NS 记录一起使用registrar 的 DNS 配置,以允许将传入的 DNS 查询委托给您的 Route 53 公共托管区域。这允许您使用指向您的应用程序负载均衡器 (ALB) 的特殊 AWS Route 53 Alias 记录。
使用 Route 53 及其别名记录的解决方案特别有趣,因为使用 ALB,您将为激活 ALB 的每个子网获得一个公共 IP。
【讨论】:
-
感谢您的详细解释。因此,如果我进入 Namesilo,删除其中 2 条 A 记录并编辑第 3 条记录,使其地址/值字段为 54.191.243.112 - 这会让我到达可以从 wesflyathletics.com:8069 访问站点的地步吗?
-
好的,所以我最终将namesilo上的名称服务器更改为路由53中我的托管区域的NS记录下列出的那些。然后我还必须在我的域的Route 53中添加A记录 ec2 IP。完全复制了这个:youtu.be/YSaT0eZLJTI我仍然对 8069 有问题,并将研究您的解决方案。