如何配置Google Domains + Heroku w Naked Domain

时间:2016-12-30 03:38:33

标签: ruby-on-rails ruby-on-rails-4 heroku dns google-domain-api

我在使用Heroku和Google Domains的网络浏览器中加载了域名。现在,域名加载了www:http://www。 XXX .com。

如果我输入没有WWW的网址,例如http:// XXX .com,我在Chrome中收到以下错误:“找不到XXX.com的服务器DNS地址”

我需要做什么才能发生以下情况:

  1. 此加载 - http:// mydomain.com
  2. http://www。 mydomain.com重定向到http:// mydomain.com
  3. 谢谢

3 个答案:

答案 0 :(得分:11)

建议将www子域设为默认值,以便将root / naked域重定向到www。这符合Heroku recommendations,其中声明:

  

为了获得最大的可扩展性和弹性,应用程序应避免使用   DNS A记录,而是使用支持CNAME的DNS提供程序   顶点的功能,或专门使用子域

您可以使用Google Domains Synthetic Records实现此目的:

  • 转到合成记录部分
  • 选择子域转发
  • 为子域输入@,为目标
  • 输入www.xyz.com

答案 1 :(得分:2)

另一种解决方案是使用Cloudflare之类的第三方DNS提供程序来执行此操作。我只是经历了同样的过程。在Heroku上托管的应用,其域名是从Google购买的。注册了Cloudflare的免费帐户,并在遵循本指南的一个小时内启动并运行:https://support.cloudflare.com/hc/en-us/articles/205893698

我所做的事情:

  • 删除我曾尝试在“自定义资源记录”下添加到Google的DNS规则
  • 在Heroku中仅添加了一个域作为根目录:“ myapp.com”(“ www.myapp.com”,“ *。myapp.com ”),它给了我一个DNS地址,例如“ blah-blah-12345-herokudns.com”
  • 在Cloudflare中的DNS页面上添加两个CNAME记录:

    1. CNAME“ myapp.com” blah-blah-12345-herokudns.com
    2. CNAME“ www” blah-blah-12345-herokudns.com
  • 通过自定义DNS名称服务器将其从Cloudflare复制到Google

在那之后,我现在可以转到myapp.com,它就可以了。超级激动,因为我真的不想www.myapp.com

一件很酷的事情是,我已经为该域设置了一个GSuite帐户,当我注册Cloudflare时,它从Google导入了所有DNS规则,包括电子邮件的MX记录,因此可以无缝运行。

答案 2 :(得分:1)

恕我直言,你应该:

1 /将您的heroku域设置为http://example.com。所有信息都在Heroku documentation中。

Heroku应使用http://example.com为您的网站提供服务。

2 /您需要将http://www.example.com中的http://example.com重定向到documentation。为此,您需要在网站标签下的Google Domain控制台中设置网络转发。 http://www.example.com是直截了当的。

任何http://example.com请求都应转发至tutorial

<强>更新

由于您的需求,我想知道最好是不要禁用裸到www重定向,将两个域点指向您的heroku实例并为它们获取SSL证书(使用let的加密使事情变得容易)。

这是{{3}}。

我希望这有帮助!