Los sitios web serán reconocidos a través del Host:
encabezado enviado desde el navegador. Pero dado que su enrutador no es capaz de exigir HTTP utilizado por el alojamiento virtual, deberá elegir un servidor como "punto final" (y decirle a su enrutador esa dirección como Servidor virtual / DMZ).
Luego, configura esa máquina como servidor web para sus dominios y proxy para las otras (por ejemplo, usando el proxy inverso de Apache ), o (tal vez mejor) instala un proxy en esa máquina y lo usa para multiplexar solicitudes a los otros servidores . Algunos dominios incluso pueden estar alojados en la misma máquina. nginx
es adecuado para este tipo de trabajo, pero también puede usar otro software (por ejemplo pound
).
Creo que la segunda solución es mejor porque no es necesario jugar con las configuraciones de los servidores web: un proxy hace el proxy y varios servidores web hacen el servicio web. Si necesita agregar servidores o mover hosts virtuales, esta arquitectura es más fácil de mantener.
+-- virtual hosts 1..9 -- server B
|
router ----- machine A (nginx?) ----+-- virtual hosts 10..23- server C
|
+-- virtual hosts 24..99- server D
La latencia agregada debido a que la solicitud se decodifica dos veces (una vez por el proxy, una vez por el destinatario previsto) es insignificante y más que compensada por la aceleración proporcionada por el proxy mismo.