Все запросы должен ловить единый сервер, например, nginx.
По заголовкам запросов
Host: ...
перенаправлять/проксировать запрос на соотв. виртуальный сервер.
server {
server_name site.ru;
location / {
proxy_pass http://127.0.0.1:8000; # допустим, тут слушает основной
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# ... ещё инструкции - передача заголовков, кэширование..
}
}
server {
server_name name1.site.ru;
location / {
proxy_pass http://127.0.0.1:8001; # вирт-1
# ...
}
}
server {
server_name name2.site.ru;
location / {
proxy_pass http://127.0.0.1:8002; # вирт-2
# ...
}
}