запрошеный хост передается в заголовке запроса Host
все веб-серверы ориентируются именно по этому заголовку.
Вот простой пример с express:
var http = require('http');
var express = require('express');
var site1App = express();
var site2App = express();
var site1Req = site1App();
var site2Req = site2App();
var server = http.createServer((req, res) => {
switch(req.headers.host) {
case 'site1.ru':
case 'www.site1.ru':
site1Req(req, res);
break;
case 'site2.ru':
case 'www.site2.ru':
site2Req(req, res);
break;
default:
//unknown host
res.writeHead(404);
res.end();
}
});
server.listen(80);