嗯,我会试着更清楚..
在我用node.js编写的应用程序服务器中,我有多个端口的内部代理:
8080港口我有我的休息api.3000端口我有我的推送服务器和聊天.我使用npm包子域路由器进行内部路由到端口,将"前端"中的子域暴露给那些代理回到那些端口.
代码演示: (<some-app>并非该应用的实名明显)
require('subdomain-router')
({
host: '<some-app>.herokuapp.com',
subdomains:
{
'': 8080, // <some-app>.herokuapp.com <=> ::8080 --WORKS--
'api': 8080, // api.<some-app>.herokuapp.com <=> ::8080
'chat': 3000, // chat.<some-app>.herokuapp.com <=> ::3000
'push': 3000 // push.<some-app>.herokuapp.com <=> ::3000
}
}).listen(process.env.PORT || 5000);
Run Code Online (Sandbox Code Playgroud)
API工作得很好,虽然我无法访问它<some-app>.herokuapp.com:8080,但只能通过<some-app>.herokuapp.com内部subdomain-router模块来实现它的魔力.
此外,我无法访问子域.在尝试访问时,api.<some-app>.herokuapp.com我No such app从heroku 获取错误页面.
TL; DR访问<some-app>.herokuapp.com工作(重定向到/v1我的API的路径),但无法访问<some-app>.herokuapp.com:8080,<some-app>.herokuapp.com:3000或 …