没有S#的aws域转发的CNAME

时间:2016-02-26 18:05:44

标签: amazon-web-services nginx amazon-ec2 dns amazon-route53

所以我想在名为doggs.com的区域中进行以下设置,以尝试捕获拼写错误的域名:

doggs.com      NS       ns-1485.awsdns-03.co.uk.
                        ns-265.awsdns-32.com.
                        ns-634.awsdns-16.net.
                        ns-1510.awsdns-59.org.
doggs.com      SOA      ns-1485.awsdns-03.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400
*.doggs.com    CNAME    doggs.com
doggs.com      CNAME    proxy.dogs.com

但不幸的是,它不会让我输入最后一个CNAME并抛出以下错误:

RRSet of type CNAME with DNS name doggs.com. is not permitted at apex in zone doggs.com.

我应该如何设置它以将doggs.com域重定向到我想要的主机,而不使用人们通常用于AWS的S3设置。

2 个答案:

答案 0 :(得分:2)

您可以使用A记录,而不是将CNAME记录用于该顶点域,并将其直接指向EC2实例的IP地址。 (如果您需要永远不会更改IP地址,或者如果您信任EC2实例的稳定性,则可以使用弹性IP,您可以使用实例的公共IP地址。)

然后,在该实例上,您运行一个HTTP服务器,其唯一目的是向您的proxy.dogs.com服务器发出HTTP重定向。例如,使用nginx,此配置可能如下所示:

server {
    listen      123.45.678.90:80;
    server_name doggs.com;
    error_log  /var/log/httpd/domains/doggs.com.error.log error;

    # Always redirect to HTTPS
    redirect 301 https://proxy.dog.com$request_uri;
}

server {
    listen      123.45.678.90:443 ssl;
    server_name doggs.com;
    error_log  /var/log/httpd/domains/doggs.com.error.log error;
    ssl_certificate /path/to/server.crt
    ssl_certificate_key /path/to/server.key

    # Always redirect to HTTPS
    redirect 301 https://proxy.dog.com$request_uri;
}

希望这有帮助!

答案 1 :(得分:1)

使用A记录和IP地址或使用ALIAS记录指向AWS资源端点。