在Netlify网站的自定义子域上出现“未找到”的问题。使用Route53与Netlify并在Heroku上托管子域名。

3

我的api.<base-url>子域名没有正确配置。我通过AWS购买了一个域名,并将其连接到在Netlify上运行的我的静态网站。为此,我设置Route53使用Netlify的名称服务器。对于顶级域名,这很正常,https://<base-url>将我发送到静态网站。

该域名的Route53托管区域的图像

我还在Heroku上运行一个节点实例,我希望它托管在api.<base-url>。目前,它可以通过Heroku提供的URL (<project-name>.herokuapp.com)访问。

我为Netlify网站的api子域名添加了自定义域名,我的heroku domains命令的结果如下:

➜ heroku domains
=== <project-name> Heroku Domain
<project-name>.herokuapp.com

=== <project-name> Custom Domains
Domain Name   DNS Record Type DNS Target                                          
api.<base-url> CNAME           fitted-lemon-gzwby8exkguturnmh2emy5l4.herokudns.com

我在Route53上创建了一个CNAME记录,指向Heroku的DNS目标。这种方式可以实现,运行host api.<base-url>会得到如下结果:
➜ host api.<base-url>
api.<base-url> has address 104.248.60.43
api.<base-url> is an alias for <project-name>.herokuapp.com.
api.<base-url> is an alias for <project-name>.herokuapp.com.


所以我的Heroku应用程序已别名为"my heroku app",但是当我直接访问 api.<base-url> 时,我会看到一个白色页面上写着“Not Found”,这似乎是Netlify的问题而不是Heroku的问题?但我不确定。我觉得我需要以某种方式告诉Netlify在api.<base-url>有一个自定义子域名,但我在文档中能找到的唯一一件事是设置Netlify的子域名来自项目的其他分支,而不是在其他地方托管子域名。

api<base-url>设置为Netlify自定义域名最终会将所有api.<base-url>的流量路由到静态Netlify站点<base-url>,而不是我的Heroku应用程序。
我做了几次尝试,但目前还没有成功,我officially遇到了困难。提前感谢您!

你能在客户端(Netlify)和服务器端(Heroku)都成功使用HTTPS吗?我在这方面遇到了麻烦,但我认为这与HSTS有关。当我访问api.<base-url>时,我会收到SSL_ERROR_INTERNAL_ERROR_ALERT错误提示。 - Paul Shryock
1个回答

3

找到答案了!没想到发布30分钟后就会有答案。

我在Route53中有一个CNAME,但由于我使用的是Netlify DNS,这是无用的。你需要在Netlify上创建一个CNAME,指向Heroku给你的主机。

因此,我的heroku domains给了我需要CNAME指向的主机名。我在Netlify上创建了一个CNAME记录——这并不是很明显,我必须点击徽章“Netlify DNS”才能找到配置选项。

我成功创建了正确的CNAME,在那之后一切都正常了。


我正在使用Netlify DNS,如何创建指向Heroku的子域名?将CNAME设置为600到domainname.herokuapp.com无效。谢谢。 - parrycima
我按照你说的做了(在Netlify上添加CNAME,将其指向heroku domains中的正确URL),但是我得到了一个400错误 :( - kevlar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接