Sempre utilizo virtual hosts quando trabalho com Apache, o que permite, dentre várias coisas, ter vários domínios apontando para a mesma porta de um ip.
Como, nos últimos meses, praticamente abandonei o Apache em favor do node.js como servidor, precisei achar uma alternativa.
Utilizando o framework Express, o processo é muito simples.
var express;
express = require('express');
// Primeiro aplicativo
appOne = express();
// Segundo aplicativo
appTwo = express();
// Terceiro aplicativo
api = express();
// Aplicativo principal
app = express();
// Os parâmetros do express.vhost são o domínio e o aplicativo
app.use(express.vhost('app-one.com', appOne));
app.use(express.vhost('app-two.com', appTwo));
app.use(express.vhost('api.dominio.com', api));
app.listen(80);
E voilà!
O roteamento acontece da forma como você provavelmente está acostumado:
appOne.get('/', function(req, res) {
res.send('Tudo funcionando!')
});
Qualquer dúvida, coloca aí nos comentários.