我有一个网站,我创建了使用WebFlow,它是链接到我在谷歌域名购买的mydomain.com,所有工作良好。
我还有一个托管在Heroku上的Node.js应用程序,我希望它可以在mydomain.com/admin上使用。
这可能在Heroku上设置吗?我尝试使用子域来设置它,但是不起作用,而且使用mydomain.com会将用户带到我的node.js应用程序的“/”页面,而不是WebFlow页面。
我需要什么才能设置这个?
谢谢你的帮助!
我的建议是为您的nodejs应用程序使用一个子域,比如admin.mydomain.com
通常,当你编写一个nodejs应用程序和你自己的前端(不管它是用React/Angular/Vue/普通的旧html,css还是javascript编写的)时,你会使用nginx来配置它们,并且每个都被分配到相同的ip地址但是不同的端口(我已经回答过Laravel和React类似的问题,它们在不同的端口上配置它们,所以相同的概念,但是改变技术来满足你的需求,部署Laravel和React spa)
或者您可以编写前端代码以从后端呈现(服务器端呈现类似nextjshttps://Nextjs.org/的内容,它让您的服务器端呈现反应)
当您使用诸如WebFlow之类的外部服务时,这一点会发生一些变化
mydomain.com
被配置为与您的WebFlow网站一起工作,我不知道它是如何配置的,但我假设它的配置方式是WebFlow引用您的CNAME和一个名称,以便与您的WebFlow网站完美地工作,因此它的配置方式类似于CNAME引用mydomain.WebFlow.com
和一个引用WebFlow网站服务器的ip地址(在这里阅读有关它的更多信息:https://support.dnsimple.com/articles/differsions-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保留的,因此您可能无法使用它
我希望我的回答能帮上点忙
部署一个简单的仅nginx服务器。数字海洋或AWS的前任。然后将其配置为2个位置
/-----用于mydomain.com
/admin----到您的heroku应用程序
您还可以使用这台nginx服务器执行缓存负载平衡。