AWS在一个EC2实例上托管多个域

时间:2016-12-24 16:07:34

标签: apache amazon-web-services amazon-ec2 virtualhost amazon-route53

我有一个 EC2实例54.82.145.116弹性IP 运行。我的vhost.conf文件如下所示:

<VirtualHost *:80>
    ServerName default:80
    DocumentRoot /var/www/html/brentrichison.com
    ServerAdmin brent@brentrichison.com
    ErrorLog /var/www/html/logs/error.log
</VirtualHost>

<VirtualHost *:80>
    ServerName brentrichison.com
    DocumentRoot /var/www/html/brentrichison.com
</VirtualHost>

<VirtualHost *:80>
    ServerName greyspace.io
    DocumentRoot /var/www/html/greyspace.io
</VirtualHost>

<VirtualHost *:80>
    ServerName tlsbaseball.com
    DocumentRoot /var/www/html/tlsbaseball.com
</VirtualHost>

<VirtualHost *:80>
    ServerName tm.brentrichison.com
    DocumentRoot /var/www/html/tm
</VirtualHost>

<VirtualHost *:80>
    ServerName tls.brentrichison.com
    DocumentRoot /var/www/html/tlsbaseball.com
</VirtualHost>

第一个域brentrichison.com,运行正常。该域的子域也可以正常工作。其他域tlsbaseball.comgreyspace.io根本不起作用。

每个域在Route 53上都有一个Hosted Zone。每个域的“A”记录都指向54.82.145.116。每个域都有自己的SOA记录,每个区域都有自己的DNS记录。

有没有人知道为什么我的其他两个域名无法解决?感谢。

1 个答案:

答案 0 :(得分:6)

我可以从whois greyspace.io和tlsbasebll.com看到Route53服务器,但他们没有回答我的问题。查看Route 53中的托管区域,并验证指定的NS服务器是否来自Amazon,并与DNS中的内容对齐。当你做多个域时,交换它们或者弄错它们非常容易。

$ whois greyspace.io

Domain : greyspace.io
Status : Live
Expiry : 2017-11-25

NS 1   : ns-1566.awsdns-03.co.uk
NS 2   : ns-1297.awsdns-34.org
NS 3   : ns-1021.awsdns-63.net
NS 4   : ns-343.awsdns-42.com
$ dig @ns-343.awsdns-42.com greyspace.io -t soa

; <<>> DiG 9.8.3-P1 <<>> @ns-343.awsdns-42.com greyspace.io -t soa
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 27079
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;greyspace.io.          IN  SOA

;; Query time: 26 msec
;; SERVER: 205.251.193.87#53(205.251.193.87)
;; WHEN: Sat Dec 24 10:19:01 2016
;; MSG SIZE  rcvd: 30

根据您在下面的评论,听起来您使用亚马逊注册了这些域名,然后重新创建了托管区域几次。让我们看一下真正的样子,比如greyspace.io

  1. 在亚马逊注册
    1. 作为DNS提供商,亚马逊自动创建托管区域来提供服务 与您的域相关联的记录,生成名称 名称服务器愿意回答该域的查询
    2. 作为注册商亚马逊保存greyspace注册数据 .io注册表,以及指向请求的dns粘合记录 从第1步到AWS Route53服务器的域
  2. 现在域名的dns hsoted区域是“实时”,因为whois数据指向它。

    1. 删除并重新创建dns托管区域。删除后,列出 域名服务器不再愿意回答这些问题,但它们是 仍在DNS中列出
    2. 所以你要做的就是进入你的域名注册并更新whois 列出的名称服务器指向重新创建托管区域时获得的新名称服务器。

      在一个不相关的说明中,你为什么要在这里两次?

      <VirtualHost *:80>
          ServerName default:80
          DocumentRoot /var/www/html/brentrichison.com
          ServerAdmin brent@brentrichison.com
          ErrorLog /var/www/html/logs/error.log
      </VirtualHost>
      
      <VirtualHost *:80>
          ServerName brentrichison.com
          DocumentRoot /var/www/html/brentrichison.com
      </VirtualHost>
      

      具有相同docroot的2个站点?我糊涂了。那些实际上不是同一个网站吗?