Gurpreet Singh
Gurpreet Singh

Reputation: 21233

Running multiple sites on node.js

I'm planning to do three sites using node.js. I have got some common templates among the sites. Should I run all three sites on single node.js instance?

I'm aware of 'vhost' middleware that allows you to run multiple domains on single http server. Is there any better option to do this?

I've also got some static html templates and not sure how to deal with these in node.js?

Finally I would like to know hosting options for this kind of setup?

Upvotes: 7

Views: 6105

Answers (1)

Menztrual
Menztrual

Reputation: 41597

I myself just had to do this exact same thing. What you want to do is use some sort of reverse proxy.

The one I use is here: https://github.com/nodejitsu/node-http-proxy

Simply install the proxy package: npm install http-proxy

What I do is have the proxy running on the server on port 80. I set the DNS up on each domain to point to this server.

Each application is running on the same server (im using screens).

For example:

MySiteApplication1 - 3001
MySiteApplication2 - 3002
MySiteApplication3 - 3003

Then your proxy server file would look like this

var httpProxy = require('http-proxy');

var server = httpProxy.createServer({
   router: {
     'mysite1.com': 'localhost:3001',
     'mysite2.com': 'localhost:3002',
     'mysite3.com': 'localhost:3003'
   }
});

server.listen 80

Upvotes: 15

Related Questions