Можно ли создать несколько vhosts в Apache, указывая один и тот же IP локальной сети?

Например: моя машина имеет локальный адрес: 192.168.1.12

Могу ли я иметь два vhosts, указывающих один и тот же адрес, но разные порты:

  • 192.168.1.12:1 местный веб-сайт 1,
  • 192.168.1.12:2 местный веб-сайт 2.

    ServerName test ServerAlias test DocumentRoot "$ {INSTALL_DIR}/www/test" Параметры + Индексы + Включает + FollowSymLinks + MultiViews DirectoryIndex index.php AllowOverride Все Порядок разрешен, запрещен Разрешить из всех Требуется локальный

Если я установил только один vhost без исправления порта, он работает. Пример: 192.168.1.12.

Если я пытаюсь получить доступ к 192.168.1.12:1 или 192.168.1.12:2, я не могу получить доступ к серверу.

Это мой httpd.conf:https://pastebin.com/t5NuF4WJ

1 ответ1

0

Предполагая, что у вас есть SOHO роутер, то, что вы предлагаете, не будет работать, но есть решение.

Проблема, с которой вы столкнетесь, заключается в том, что вы пытаетесь привязать несколько IP-адресов к одному компьютеру и иметь разные веб-сайты на каждом. Это не проблема, однако ваш SOHO-маршрутизатор, вероятно, сможет подключить только 1 IP-адрес на порт 80.

Решение состоит в том, чтобы иметь несколько веб-сайтов на одном и том же внутреннем IP-адресе - и это обычная конфигурация, которая поддерживается с RFC2068 в 1997 году. Это работает так, что все веб-сайты указывают на один и тот же IP-адрес, и первое, что они делают при подключении, советуют, какое доменное имя они хотели. Это называется виртуальным хостингом на основе имени.

Чтобы сделать это в Apache, вам нужны следующие директивы:

Убедитесь, что директива «NameVirtualHost XXXX» находится в вашем файле конфигурации Apache - это внутренний IP-адрес, на котором работает веб-сервер.

Затем для каждого веб-сайта создайте папку виртуального хоста, например

<VirtualHost *:80>
ServerName www.domain.name.of.website
ServerAlias domain.name.of.website alt.domain.name.of.website
DocumentRoot /path/to/website/document/root/

(Other directives specific to site here)
</VirtualHost>

Обратите внимание, что директива ServerAlias является необязательной.

Также обратите внимание, что вы можете сделать то же самое с HTTPS-хостингом на порту 443, но также необходимо указать ключи сертификатов и т.д., И это будет работать только для более новых (Windows 7 и выше) систем.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .