在Heroku上托管时,我可以在非标准端口上监听node.js吗?

iZ.*_*iZ. 5 port heroku node.js

我正在构建一个node.js应用程序,我正在尝试在Heroku上托管它.似乎要让我的应用程序可供全世界使用,我需要像这样听:

app.listen(process.env.PORT || 3000);

我想让我的应用程序在端口8080上侦听.这在Heroku中是否可行?我可以更改process.env.port的值吗?它似乎是某种反向代理,我可能无法控制.

yfe*_*lum 22

不.Heroku告诉您的应用程序您的应用程序需要监听哪个端口.Heroku和您的应用程序之间所需的接口是PORT环境变量:您的应用程序必须查找并使用它.您的应用程序无法侦听任何其他端口,但Heroku告诉您的应用程序必须侦听的端口除外.Heroku尝试在该端口上打开与您的应用程序的TCP连接,如果Heroku启动您的应用程序并且您的应用程序没有在该端口上监听60秒后,Heroku会发现您的应用程序已损坏并将其关闭.

  • 不,您的应用程序不处理SSL.Heroku在Heroku路由层中提供(作为插件服务)反向代理,具有自己的IP地址,并将证书和私钥复制到该反向代理上.该反向代理终止来自浏览器的SSL连接,并将HTTP请求转发给未加密的某个dynos.您的应用程序dyno将侦听Heroku告诉它侦听的一些随机高端口(如端口32,654),并且Heroku路由层知道将HTTP请求转发到侦听该端口的应用程序. (8认同)