我们在Cloud Foundry上部署了两个网站,并且希望在根级别运行一个网站,另一个作为子域运行。
我们已在Cloud Foundry org中创建了一个域domain.tld
:
$ cf domains
Getting domains in org myorg as me...
name status type
cfapps.myprovider.com shared
domain.tld owned
除此之外,我们还创建了两条路线:
$ cf routes
Getting routes for org myorg / space prod as me ...
space host domain port path type apps service
prod domain.tld app1
prod app2 domain.tld app2
现在,我需要配置DNS。
Cloud Foundry文档说:
https://docs.pivotal.io/pivotalcf/1-6/devguide/deploy-apps/routes-domains.html#domains-dns
将您的根域(例如mydomain.com)用于应用程序 Elastic Runtime您可以使用自定义DNS记录类型,如ALIAS 和ANAME,如果您的DNS提供商提供它们,或子域名重定向。
在Godaddy,我们找不到ALIAS或ANAME记录类型。 Godaddy只为我们提供以下选择。这是否意味着我们不能使用ALIAS或ANAME?什么提供商支持它?
此外,文件说:
如果您的DNS提供商不支持ANAME或ALIAS记录,则可以 使用子域重定向,也称为域转发 将根域的请求重定向到配置为的子域 CNAME。
这是否意味着我们需要将根域指向我的提供者并让它们转发到www.domain.tld
之类的内容?我们想避免这种情况。
答案 0 :(得分:1)
如果你想使用GoDaddy的DNS托管,我认为你不能按照你想要的方式工作。它们不支持ANAME或ALIAS记录(在我写这篇文章时)。如果您想要使用该路由,则需要使用另一个支持这些非标准记录类型的DNS提供程序。
See this SO post for more details
您可以做的是指示GoDaddy HTTP将根域重定向到www
,然后将www
与CNAME记录设置为CF上分配给您的应用程序的路由。我现在这样做是为了在PWS(Pivotal的托管Cloud Foundry)上托管一个带有自定义域的站点。效果很好,没有任何问题。
Ex:绑定到我的应用的两条路线
www.example.com
的CNAME映射到my-app.cfapps.io
,*.cfapps.io
是PWS上的默认域,DNS由提供商管理。
为了彻底,我会说您可以在技术上为您的根域设置A记录,并将其指向您的CF提供商的IP地址。这将允许您使用根域访问该站点,并且不需要任何HTTP重定向或备用DNS记录类型。
问题以及您不希望这样做的原因是您的DNS提供商可能没有静态IP地址供您使用A记录进行定位(这是PWS的情况,因为它在AWS上运行,分配给ELB的IP可以并且确实发生变化)。这意味着您的A记录只有在IP更改之前才会准确。然后,在您更新DNS设置之前,您的网站将停止运行并且无法访问。如果您的提供商保证其负载均衡器的IP不会改变,或者您不介意偶尔停机,那么您就可以走这条路。