Se você quiser hospedar seu servidor web nas portas padrão HTTP (80) ou HTTPS (443), eu acho que você não pode ter duas máquinas diferentes respondendo dependendo apenas do nome do domínio.
O problema é que, quando você acessa algum site, você não o acessa por meio de um nome de domínio - você está apenas usando o DNS para mapear esse nome de domínio para um IP. O motivo pelo qual você pode hospedar vários sites no mesmo IP é o cabeçalho do Host - consulte a seção 14.23 Host
do RFC 2616:
Como isso funciona é o seguinte. Digamos que temos dois domínios a.example.com e b.example.com apontando para o mesmo IP, digamos 10.0.0.10. O cliente, geralmente usando algum navegador da Web, solicita ao DNS o IP de a.example.com. O DNS responde de volta com 10.0.0.10. O cliente envia algo como:
Host: a.example.com
Quando seu servidor da Web recebe isso, ele pode determinar que você realmente deseja a.example.com e não b.example.com (ou possivelmente outros hosts virtuais nesse servidor da Web).
No seu exemplo, no entanto, você não tem um servidor - você tem dois servidores. O roteador precisaria rotear para um deles baseado apenas no IP - o cabeçalho do Host é processado na camada de aplicação enquanto o roteamento é feito na camada IP (veja TCP/IP model ). Embora alguns roteadores tomem algumas decisões com base na camada de aplicativo, não acho que qualquer um possa ir tão fundo no pacote para examinar os cabeçalhos HTTP e rotear com base nesse resultado.
O que você pode fazer é:
- Torne uma das duas VMs o padrão e, em seguida, passe o proxy para a outra
- Crie uma terceira VM que será proxy para as duas VMs atuais
Ver, por exemplo, isso para mais informações sobre hosts virtuais:
Ver, por exemplo, estes sobre como configurar um proxy reverso:
Aqui está a documentação de referência para os módulos que podem ser usados para fazer proxy reverso:
Espero que isso ajude.