Веб-сайты будут распознаваться через заголовок 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
Добавленная задержка из-за того, что запрос декодируется дважды (один раз прокси, один раз его предполагаемым получателем), незначителен и более чем компенсируется ускорением, обеспечиваемым самим прокси.