Веб-сайти будуть розпізнані через Host:
заголовок, надісланий з браузера. Але оскільки ваш маршрутизатор не здатний до демонтажу HTTP, який використовується віртуальним хостингом, вам потрібно буде вибрати один сервер як "кінцеву точку" (і повідомити маршрутизатору цю адресу як Virtual Server / DMZ).
Потім ви або налаштовуєте одну машину як веб-сервер для своїх доменів і проксі для інших (наприклад, використовуючи зворотний проксі-сервер Apache ), або (можливо, краще) встановлюєте проксі на цій одній машині і використовуєте її для мультиплексування запитів на інші сервери . Деякі домени можуть навіть розміщуватися на одній машині. nginx
підходить для такої роботи, але ви також можете використовувати інше програмне забезпечення (наприклад, pound
).
Я думаю, що друге рішення є кращим, оскільки вам зовсім не потрібно пограбувати з конфігураціями веб-серверів: один проксі-сервер виконує проксі, а кілька веб-серверів виконують сервісне обслуговування. Якщо вам потрібно додати сервери або перемістити віртуальних хостів навколо, цю архітектуру легше підтримувати.
+-- virtual hosts 1..9 -- server B
|
router ----- machine A (nginx?) ----+-- virtual hosts 10..23- server C
|
+-- virtual hosts 24..99- server D
Додана затримка, обумовлена тим, що запит декодується двічі (один раз проксі-сервером, один раз його призначеним одержувачем), незначна, і більш ніж компенсується прискоренням, яке надає сам проксі.