如何将Node.js路由添加到Google Domain?

时间:2019-06-09 00:49:16

标签: node.js express heroku routing

我有一个使用WebFlow创建的网站,该网站链接到我在Google Domains上购买的mydomain.com,一切正常。

我还有一个Heroku上托管的Node.js应用程序,我想在mydomain.com/admin上使用它。

是否可以在Heroku上进行设置?我尝试使用子域进行设置,但无法正常工作,使用mydomain.com会将用户带到我的Node.js应用程序的“ /”页面,而不是WebFlow页面。

我需要什么才能进行设置?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

我的建议是为您的nodejs应用使用子域,例如admin.mydomain.com

通常,当您编写一个nodejs应用程序和您自己的前端(无论它是用React / Angular / Vue /普通的旧HTML css和javascript编写的)时,您将使用nginx对其进行配置,并且每个都分配给相同的IP地址,但不同端口(我为Laravel和React回答了类似的问题,它们在不同的端口上配置它们,因此具有相同的概念,但更改技术以适应您的需求Deploy Laravel and React spa

或者您可以编码前端以从后端渲染(服务器端渲染类似Nextjs https://nextjs.org/的东西,让您服务器端渲染React)

当您使用WebFlow之类的外部服务时,这会有所改变

mydomain.com已配置为可与您的WebFlow网站一起使用,我不知道它是如何配置的,但我认为它的配置方式是WebFlow引用了您的CNAME和A名称以与您的WebFlow一起使用站点是完美无缺的,因此它的配置就像CNAME指的是mydomain.webflow.com,A指的是WebFlow站点的服务器的ip地址(在此处https://support.dnsimple.com/articles/differences-a-cname-records/了解更多信息)

因此您将www.mydomain.com引至您的WebFlow页面

,您将admin.mydomain.com引到heroku上托管的nodejs应用

回答“为什么我不能仅仅使用mydomain.com/admin来引用我的nodejs应用”的问题:

回溯引用:DNS服务器将mydomain.com引用到WebFlow站点,因此当您在浏览器中键入mydomain.com时,它将引用WebFlow站点的ip地址

假定WebFlow站点的ip地址为10.10.10.1 并且您的nodejs应用程序heroku ip地址为20.20.20.1

键入mydomain.com/admin并引用到WebFlow网站时,就好像键入10.10.10.1/admin

要实现让10.10.10.1/admin引用nodejs应用程序的部分,它们都应位于同一服务器上,并在不同的端口上配置,但应使用相同的IP地址

但是由于它们不是,所以不会如您所愿的实现

也不要忘记,/admin是为WebFlow保留的,因此您可能无法使用它

希望我的回答有所帮助

答案 1 :(得分:1)

部署一个仅用于nginx的简单服务器。例如在数字海洋或aws上。然后将其配置为2个位置

/ ----- for mydomain.com

/ admin ----到您的heroku应用

您还可以使用此单个nginx服务器执行缓存负载平衡。