【发布时间】:2014-01-15 08:20:13
【问题描述】:
我正在尝试对依赖于客户端子域的遗留应用程序进行一些测试。所以在实际应用中,你可以去:
clienta.domain.com
它会为客户 A 打开一个特定的区域。
对于 EC2,我试图让应用程序仅使用类似于此的公共 DNS 地址工作:
ec2-123-123-123-123.compute-1.amazonaws.com
问题是,设置我的虚拟主机 (like this post) 可以正常用于主公共 DNS 地址,但不适用于子域。
clienta.ec2-123-123-123-123.compute-1.amazonaws.com => 不工作
我想这是因为还必须创建 DNS CNAME 记录?我显然不拥有 amazonaws.com,所以没有能力这样做。
这是虚拟主机设置:
NameVirtualHost *:80
# Primary domain
<VirtualHost *:80>
DocumentRoot "/var/www/vhosts/myapp"
ServerName ec2-123-123-123-123.compute-1.amazonaws.com
<Directory "/var/www/vhosts/myapp">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
# Wildcard Sub Domains
<VirtualHost *:80>
DocumentRoot "/var/www/vhosts/myapp"
ServerName clients.ec2-123-123-123-123.compute-1.amazonaws.com
ServerAlias *.ec2-123-123-123-123.compute-1.amazonaws.com
<Directory "/var/www/vhosts/myapp">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
TL;DR; 在不弄乱 DNS 的情况下,有没有一种简单的方法可以将子域与 Amazon EC2 公有 DNS 地址一起使用?
注意:我试图避免将记录添加到我们的 DNS 中,这些记录只会在短时间内使用。
更新
如果我必须使用自己的域,我该如何处理两个子域?例如,如果我创建 staging.mydomain.com 以指向 EC2 实例,那么现在我将如何访问 clienta.staging.mydomain.com?
【问题讨论】:
-
更新了我的答案以回答您的更新问题。
标签: apache amazon-web-services dns amazon-ec2