Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I have node.js listen on a non-standard port when hosted on Heroku?

I'm building a node.js app and am experimenting with hosting it on Heroku. It seems that to make my app available to the world, I need to listen like this:

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

I'd like to have my app listen on port 8080. Is this possible in Heroku? Can I change the value of process.env.port? It seems to be some kind of reverse proxy that I might not have control over.

like image 200
iZ. Avatar asked Sep 18 '11 02:09

iZ.


People also ask

What port should I use on Heroku?

Heroku expects a web application to bind its HTTP server to the port defined by the $PORT environment variable. Many frameworks default to port 8080, but can be configured to use an environment variable instead.

What port does node js listen on?

js with express is accessible only via port 80. Hello, I managed to setup my test app (NODE/Express) on http://178.128.173.30/ but I can access it through http:// only when app. listen(80);

Does heroku support node JS?

Heroku Node. js support will only be applied when the application has a package. json file in the root directory.


1 Answers

No. Heroku tells your application which port your application is required to listen on. The required interface between Heroku and your application is the PORT environment variable: your application must look for and use it. Your application is not able to listen on any other port except the port that Heroku tells your application it must listen on. Heroku tries to open a TCP connection to your application on that port and, if sixty seconds elapse since Heroku started your application and your application isn't listening on that port, Heroku figures your application is broken and shuts it down.

like image 115
yfeldblum Avatar answered Oct 12 '22 08:10

yfeldblum