apache - 将子域与 Amazon EC2 公有 DNS 地址一起使用?

标签 apache amazon-web-services dns amazon-ec2

我正在尝试使用依赖于客户端子域的遗留应用程序进行一些测试。所以在实际应用中,你可以去:

clienta.domain.com


它将为客户 A 打开一个特定区域。
使用 EC2,我试图让应用程序仅使用与此类似的公共(public) DNS 地址工作:

ec2-123-123-123-123.compute-1.amazonaws.com


问题是,设置我的虚拟主机( like this post )对于主公共(public) DNS 地址工作正常,但不适用于子域。

clienta.ec2-123-123-123-123.compute-1.amazonaws.com => DOES NOT WORK


我想这是因为还必须创建 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;博士; 在不弄乱 DNS 的情况下,是否有一种简单的方法可以将子域与 Amazon EC2 公有 DNS 地址一起使用?
注意:我试图避免将记录添加到我们的 DNS 中,这些记录只会在短时间内使用。
更新
如果我 必须使用我自己的域,如何解决两个子域?例如,如果我创建 staging.mydomain.com 指向 EC2 实例,现在我将如何访问 clienta.staging.mydomain.com ?

最佳答案

为什么不使用自己的域名?大多数基于 EC2 的 Web 服务不使用 EC2 公共(public) DNS,因为该公共(public) DNS 可能会更改。

您可能想要调查的是使用弹性 IP,以便为您的实例提供可以配置 DNS 的稳定 IP 地址,然后将这些弹性 IP 附加到您的 EC2 实例。

这是有关弹性 IP 的 AWS 文档:http://aws.amazon.com/articles/1346

当然,如果您计划使用负载均衡配置,那么您实际上会使用 Elastic Load Balancer 而不是 Elastic IP。在此配置中,您的 DNS 将定向到 ELB。

以下是有关 Elastic Load Balancing 的信息:http://aws.amazon.com/elasticloadbalancing/

关于apache - 将子域与 Amazon EC2 公有 DNS 地址一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20805805/

相关文章:

amazon-web-services - 如何在部署 travis 之前清除 S3 存储桶

php - Apache 不在 Linux/OpenSuse 中处理 php 文件

python - 类型错误 : __init__() got an unexpected keyword argument 'current_app'

windows - 如何以编程方式/远程执行 EC2 Windows 实例中的程序

java - 如何将网络书通知中的参数获取到我的 AWS Lambda 函数中?

scala - 无法通过 service-locator-dns 库使用基于非 lagom 的静态项目服务

amazon-web-services - 如何将 DNS 委托(delegate)给单独的 AWS 账户?

dns - Docker 守护进程和 DNS

linux - 使Apache2在json中提供目录索引

python - 如何将django部署到专用的Web服务器?