我有一个网站托管在Openshift并且它允许用户使用外部 DNS 提供商添加域名别名。我使用 Cloudflare 作为我的 DNS。但是,由于 Openshift 的 IP 地址已知会发生变化,因此您必须使用CNAME
记录而不是A
记录。(我知道这很糟糕!)
然而,这会破坏我的服务MX records
,我想使用我的域名主机的免费电子邮件重定向服务。
有没有什么办法可以解决这个问题?
答案1
来自 RFC 2181:
10.3. MX 和 NS 记录
用作 NS 资源记录的值或 MX 资源记录值的一部分的域名不得是别名。规范不仅明确了这一点,而且在这两个位置使用别名既不能达到预期的效果,也不能很好地实现可能导致此方法的抱负。 此域名必须具有一个或多个地址记录作为其值。 现在这些将是 A 记录,但将来其他提供地址信息的记录类型也可能被接受。它也可以有其他 RR,但绝不是 CNAME RR。
原因是您需要进行额外的查询:
- 向 IP 请求 MX 记录 -> CNAME
- 向 IP 请求此 CNAME -> A 记录
- 向 IP 请求该 A 记录 -> 最后 IP
这会导致很多开销
答案2
我只是使用智能主机。
此外,OpenShift 正在快速发展,如果您遇到问题,请将其发布到社区中,我们将予以解决
答案3
有一个解决方法,就像 heroku 中的人在谈论时隐含地声明的那样避免裸域名。我在 OpenShift 中尝试过,效果是一样的。
1)如果你拥有该域名example.com
,请创建一个子域名www.example.com
2)使用CNAME
记录作为wwww.example.com
别名example-yournamespace-rhcloud.com
3) 永久重定向(301)example.com
至www.example.com
。例如,使用.htaccess
:
redirect 301 / http://www.example.com
4)您没有触碰CNAME
任何A
记录,因此您可以自由配置您的MX
记录。
答案4
你可以有一条MX
没有A
记录的记录,如下所示:
你的域名。IN MX 50 mail.otherserver.com。