【发布时间】:2011-08-10 10:41:35
【问题描述】:
如何在 AWS 中创建域和子域?
【问题讨论】:
如何在 AWS 中创建域和子域?
【问题讨论】:
使用 Amazon AWS Route 53 和 Apache 2.4 网络服务器
创建一个带有通配符的规范名称,以将所有子域流量路由到所在的根 Web 服务器。
现在添加子域详细信息以及根域路由,如下所示。
# -----------------------------------
# GS - Virtual Host Configurations
# -----------------------------------
<VirtualHost *:80>
ServerName www.gajen.com
ServerAlias gajen.com
DocumentRoot "/var/www/html"
</VirtualHost>
# Stagings
# --------
# Discovery
<VirtualHost *:80>
ServerName discovery.gajen.com
DocumentRoot "/var/www/html/discovery"
</VirtualHost>
# Alpha
<VirtualHost *:80>
ServerName alpha.gajen.com
DocumentRoot "/var/www/html/alpha"
</VirtualHost>
【讨论】:
我在这里找到的其他答案有点神秘。以下是在 Route53 中托管域顶点和该域的任何其他主机名的主要步骤。这是假设您通过 GoDaddy 或 Network Solutions 或其他任何地方购买了一个域。 (从 2014 年年中起,您可以直接在 Route53 中购买域名):
如果您在多个 AWS 区域(不仅仅是跨多个 AZ)运行节点,您还可以使用 Route53 的“基于延迟的路由”,它将在任何给定时刻将用户引导到给定延迟的最快节点(它基于最低延迟,不是最近的地理位置)。或者你可以使用 Route53 的健康检查来设置你的记录值——例如如果健康检查通过,你的 A 记录指向 1.2.3.4,如果失败,A 记录指向 5.6.7.8。
编辑: 我发现的另一个有用的 Route53 技巧(偶然,虽然我后来读到它是一个已知/受支持的功能)是您可以使用 A 记录别名指向 ELB(或存储桶) 、CloudFront 发行版等)在其他 AWS 账户中。它们不会自动填充到别名下拉列表中,但您可以将它们复制并粘贴到“别名目标”输入中。
【讨论】:
您不会在 AWS 中“创建”域或子域。在注册商级别创建域 - GoDaddy、Network Solutions、VeriSign 等,而在 DNS 中创建子域。
如果您指的是如何创建一个 Web 服务器来响应 mydomain.com 和/或 subdomain.mydomain.com,那么您需要更改 mydomain.com DNS 记录以指向您的亚马逊的 IP 地址EC2 实例。
首先,启动您打算用作 Web 服务器的 EC2 AMI。然后,您需要使用 AWS 控制台分配弹性 IP 地址并将其分配给 Web 服务器实例。记下 Elastic IP 是什么。现在转到您的注册商的域控制面板,添加/更改名为“www”和“@”的 A 或 CNAME 记录的 IP 地址,以匹配您分配给 Web 服务器实例的弹性 IP。现在为您的子域创建一个新的 CNAME 记录并将其指向“@”。保存您的更改。
如果您的 Web 服务器实例正在运行 Apache,那么您现在必须配置基于名称的虚拟主机 - 网络上有大量教程用于此目的。如果您正在运行 IIS,则必须将主机标头分配给您的站点。同样,也有很多教程。 Google 是您的朋友。
希望这会有所帮助。
【讨论】:
虽然这个问题已经得到解答并且已经存在多年了,但我这周刚刚经历了这个过程。我认为将我在 AWS 中创建域和子域的操作截图显示出来会很有帮助。
创建域:
创建子域。
【讨论】:
您不会将您的域名转移到 AWS。而是分配一个弹性 IP 地址并将其关联到您的实例。然后转到您的域提供商并将您的域指向弹性 IP 地址。您无需将域转移到 AWS。您可以从 AWS 管理控制台执行此操作。
通过这种方式,您可以启动第二个实例并测试任何应用程序更新,然后只需将弹性 IP 移动到第二个实例,而无需与您的域提供商进行任何更改
【讨论】:
AWS Route 53 可以(截至 2016 年)允许您通过 https://console.aws.amazon.com/route53/home#DomainListing: 页面注册域。我知道它实际上是通过第三方来处理注册的,但你不需要知道。
拥有域后,您可以使用 托管区域 连接到资源。我记得上面的注册过程会自动为您的域名创建一个托管区域。
要将域链接到资源,您需要进入该托管区域并创建一个“A”记录集。该界面非常不言自明。
如果您想要一个子域,请在同一个托管区域中创建另一个“A”记录集:您可以选择每次都在域名上设置前缀,当然也可以链接到不同的资源。
https://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html 教程对于初学者来说行话有点重,但涵盖了以上几点。
【讨论】:
第 1 步 - 对于域 a) 创建托管区域。 b) 更新域名提供商中的 NS 和 SOA 记录 c) 让域传播。24-48 小时
第 2 步 - 对于子域 a) 在上述托管区域(例如子域)中创建 CNAME 记录 b) 指向例如网站bucket https//bucket_in_S3的地址
您的子域已准备就绪并立即生效。
【讨论】:
在设计解决方案时考虑到 DNS 对您来说非常重要。查看他们的Route 53 product。它是一个可编程的 DNS 接口,传播时间也很短。如果您需要进行更改,这将很重要。您应该能够告诉您的注册商指向 Route 53。
我还强烈建议您将所有服务器放在 Elastic Load Balancer (ELB) 服务器后面,并将您拥有的任何 DNS 服务指向它。这将减少您在移动服务器和升级时可能遇到的任何停机时间。
【讨论】:
在 Route 53 中创建域设置后,只需像您一样添加别名或 CNAME www.yourdomain.com
这里是 A-Record yourdomain.com Cname 是 www.yourdomain.com
和你的子域一样
sub.yourdomain.com
这个过程不只是技术上的困难,
如果你想了解更多,我很乐意,
AWS 摇滚
【讨论】:
使用 AWS 无法创建域名或子域名,您必须从域注册商创建它,然后将它们指向 AWS Route 53 服务 - 该服务将您的域名映射到 Ip 以及每个主机区域的专用名称服务器。
因此,重点是首先从第三方域名注册商创建域或子域,然后使用 AWS 路由 53 服务进行其余流程。
【讨论】: