I have a node.js app that runs on port 3000
. I deployed it on amazon web services (ec2
) and it works over there. My server.js
file says:
var port = process.env.PORT || 3000;
(...)
app.listen(port);
console.log('App listening on port ' + port);
My security group in aws settings seems to have the port 80 also opened:
so I thought it's enough to just change the var port
to = 80
and restart the server. But when I did that I got an error:
bitnami@ip-172-31-47-102:~/apps/myproject/www/myproject$ sudo node server.js
App listening on port 80
events.js:141
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE :::80
at Object.exports._errnoException (util.js:856:11)
at exports._exceptionWithHostPort (util.js:879:20)
at Server._listen2 (net.js:1237:14)
at listen (net.js:1273:10)
at Server.listen (net.js:1369:5)
at Function.app.listen (/opt/bitnami/apps/myproject/www/myproject/node_modules/express/lib/application.js:542:24)
at Object.<anonymous> (/opt/bitnami/apps/myproject/www/myproject/server.js:43:5)
at Module._compile (module.js:398:26)
at Object.Module._extensions..js (module.js:405:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Function.Module.runMain (module.js:430:10)
at startup (node.js:141:18)
at node.js:1003:3
I'm using the Bitnami MEAN 3.2.1-0
system on Amazon.
Also, the reason why I want to change this port is this:
so far all my webservices operate on port 3000. However, I also have there a public_html
folder with the index.html
file. So when any user wants to display my webpage he has to enter not only the webpage, but also the port (3000
) which is not that convenient.
So far the whole app stays under www.ec2-some-random-amazom-numbers.eu-west-1.compute.amazonaws.com:3000/index.html so I will buy a normal top level domain to point at it (eg. something.com ) but then - do I still need to change the port 3000 to 80 in that case? Or maybe it's common to leave apps on port other than 80?
If the latter, then will it be possible for me to leave the port as it is and just point the top level domain on this whole long amazon one with a port 3000 at the end?
So for example: when user types www.something.com
it will redirect him to
www.ec2-some-random-amazom-numbers.eu-west-1.compute.amazonaws.com:3000/index.html
?