Os sites serão reconhecidos pelo cabeçalho Host:
enviado pelo navegador. Mas como seu roteador não é capaz de dispersar HTTP usado pela hospedagem virtual, você precisará escolher um servidor como "endpoint" (e informar ao roteador esse endereço como Virtual Servidor / DMZ).
Em seguida, você configura essa máquina como servidor para seus domínios e proxy para os outros (por exemplo, usando proxy reverso do Apache ), ou (talvez melhor) você instala um proxy nessa máquina e o utiliza para multiplexar solicitações para os outros servidores. Alguns domínios podem até estar hospedados na mesma máquina. nginx
é adequado para esse tipo de trabalho, mas você também pode usar outro software (por exemplo, pound
).
Acho que a segunda solução é melhor porque você não precisa mexer com as configurações dos servidores da Web: um proxy faz o proxy e vários servidores da Web fazem a entrega na web. Se você precisar adicionar servidores ou mover hosts virtuais, é mais fácil manter essa arquitetura.
+-- virtual hosts 1..9 -- server B
|
router ----- machine A (nginx?) ----+-- virtual hosts 10..23- server C
|
+-- virtual hosts 24..99- server D
A latência adicionada devido à solicitação ser decodificada duas vezes (uma vez pelo proxy, uma vez pelo destinatário pretendido) é insignificante e mais do que compensada pela aceleração fornecida pela própria proxy.