user3227023
user3227023

Reputation: 41

How to run sails.js application on port 80 with example?

I have to put sails.js in port 80, but apache is already using it. How can I put both (sails.js and apache) on the same port 80? I need it because in my company all the ports are blocked except for PORT 80. (This is a realtime application with nodejs and socket.io (websockets) and in the other side a php application). Thanks a lot

Upvotes: 2

Views: 3213

Answers (2)

bredikhin
bredikhin

Reputation: 9025

You have to run Sails on any free port (1337, for example) and use Apache with mod_proxy. Make sure it's loaded in Apache config, then your virtual host will be something like this:

<VirtualHost *:80>
    ServerName  www.youserver.com

    ProxyPass / http://localhost:1337/
    ProxyPassReverse / http://localhost:1337/
</VirtualHost>

See mod_proxy documentation for more details.

Upvotes: 5

NDBoost
NDBoost

Reputation: 10634

Put nginx in front of sailsjs, and dump apache, or make apache run on a different port.

DigitalOcean has a great tutorial on doing this with two nodejs apps.. You can find it here.

I also wrote a blog post about it here

I do this on my server so i can run ghost blog, and sailsjs on the same server. This is how i have it setup.

NGINX Proxies blog.gorelative.com -> localhost:2368
NGINX Proxies gorelative.com -> localhost:1337

Just adapt the tutorial to proxy one domain to localhost:1337 for sailsjs, and add in the other hosts to host them normally.. or proxy the others to apache2, which probably is a waste of resources and not ideal.

AFAIK: With a bit more work your hosts don't even need to be on the same server. nginx can proxy to another server, and also do load balancing tasks.

Upvotes: 3

Related Questions