Heroku + node.js:我有一台使用多个端口的服务器如何让Heroku分配它们?

【字号: 日期:2024-04-15浏览:34作者:雯心
(adsbygoogle = window.adsbygoogle || []).push({}); 如何解决Heroku + node.js:我有一台使用多个端口的服务器如何让Heroku分配它们??

好的,经过研究后,我发现Heroku中的开放端口已被 并且是 。

解决此问题的 是使用 ,然后在应用程序内使用代理模块(例如subdomain-router我使用的代理模块)。

-Heroku不允许您在其域上创建子域,这意味着它your-app.herokuapp.com是固定的,不能有子域。在Heroku手册中,他们要求您拥有自己的域和dns提供程序来执行此操作,方法是在域设置的dns表中创建一个A别名(CNAME),该别名将引用您的应用程序herokuapp域,然后使用herokudomains:add用于将您的域添加到允许的来源列表的命令。

您可以在这里阅读更多内容。它提供了您需要的所有信息。

希望它对一些人有所帮助。

解决方法

嗯,我会尽量清楚一点。

在用node.js编写的应用程序服务器中,我具有用于多个端口的内部代理:

在我的8080港口,我有 休息用的api 。在我的3000港口,我有 推服务器和聊天室

我使用npm包subdomain-router进行内部路由到端口,在“前端”中公开子域,这些子域代理回到那些端口。代码演示: (<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);

该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或chat.<some-app>.herokuapp.com。

尝试通过在url中指定端口来访问我的API( 例如<some-app>.herokuapp.com:8080:)时,在浏览器(谷歌浏览器)中出现以下错误:ERR_CONNECTION_REFUSED。

根据我的推测 ,这可能与在heroku中 打开端口 有关,但是我不知道如何执行此操作(尝试使用谷歌搜索功能)。它没有解释为什么我不能访问子域。

希望您能对此问题有所启发。我是heroku的新手,真让人感到沮丧。

谢谢!阿米特

相关文章: