【问题标题】:CNAME for aws domain forwarding without S#CNAME 用于没有 S# 的 aws 域转发
【发布时间】:2016-02-27 03:33:44
【问题描述】:

所以我想在名为 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 设置。

【问题讨论】:

  • DNS 不会“重定向”任何东西。仅 DNS 解析。重定向需要某种网络服务器的参与。如果您使用的是 S3、ELB 或 CloudFront,则可以借助 Route 53 中的别名来解决此服务器的 A 记录,但很难判断您是在询问您的实际问题 - 还是仅询问您尝试的问题解决方案。

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


【解决方案1】:

您可以使用 A 记录并将其直接指向 EC2 实例的 IP 地址,而不是使用该顶级域的 CNAME 记录。 (如果您需要该 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;
}

希望这会有所帮助!

【讨论】:

  • 我最终只使用了一条记录,但感谢您的彻底回答......我相信第二部分会对某人有很大帮助。我会用 nginx 标记问题。
【解决方案2】:

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

【讨论】:

  • 我看到的 53 号路线中没有 ALIAS 选项,对吗?
猜你喜欢
  • 2015-01-05
  • 2017-10-23
  • 2019-01-05
  • 2018-12-26
  • 2020-01-12
  • 2016-12-26
  • 1970-01-01
  • 2021-01-01
  • 1970-01-01
相关资源
最近更新 更多