我曾尝试遵循一些不同的教程,但无法让它发挥作用。
我在 Route 53 中拥有我的域名(example.com)的所有 DNS。运行良好。
我的顶级域名(A 记录)以别名的形式指向我的负载均衡器 (AWS)。这指向 EC2 服务器并且运行正常。
我想添加一个子域名 (client.example.com),但我不太确定在哪里添加以及我需要什么类型的记录。我希望它指向与我的顶级域名相同的 EC2 服务器上的目录(该目录的路径为 example.com/client)。我不希望它重定向,只提供此目录中的文件。
不确定是否需要创建一个新的托管区域,在区域中放置什么,将其指向什么,以及是否需要修改服务器上的任何内容(例如重写规则)。
任何指示都将受到赞赏。
答案1
我没有使用过太多 AWS,但一般的操作方式如下。
假设您目前已example.com
在 Route53 中托管,因此 Route53 是您区域的权威名称服务器example.com
。现在,如果您想要一个名为 的子域名client.example.com
,它同样需要指向相同的 IP 地址example.com
。
因此在这种情况下创建一个CNAME 记录其中example.com
为规范名称,client.example.com
为别名记录。
一旦完成此操作example.com
,它们client.example.com
都会解析为同一个 IP 地址,即负载均衡器。
如果您希望分享相同的DocumentRoot
内容example.com
,则client.example.com
无需做其他事情。但如果您想提供不同的内容,请创建一个基于名称的虚拟主机在 Apache 中。
更新
由于您希望同时demo.example.com
提供example.com
不同的内容,因此您必须在 Apache 中创建一个基于名称的虚拟主机。
配置如下
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/main
</VirtualHost>
<VirtualHost *:80>
ServerName demo.example.com
DocumentRoot /var/www/content
</VirtualHost>
/var/www/main
如果请求的是http://example.com
或 ,则上述配置将从 提供文件。如果请求的是 ,http://www.example.com
则将从 提供文件。/var/www/content
http://demo.example.com