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