Say you have 3 domains, foo.com, bar.com, and blah.com. You want to run a nodejs app for each.
Is it better to proxy them using http-proxy to 3 separate node apps on 3 different ports, or better to have a single node app that uses express.vhost() to require() whatever code is needed for each host? pros and cons for either case?
Each node.js process utilizes only one CPU. If your server only has a single core than it is better to run only one node instance to avoid as much context switch as possible.
But if you have multi cores (and hyperthreading) then it makes sense to run as many node instances as you have cores. Just remember that your front-end proxy also takes up processing time.
So, for a quad-core server and 3 domains, it makes perfect sense to run 4 processes - the front-end proxy and the 3 node instances.
Also, don't forget that your database would also probably be configured to launch several threads.