Назад | Перейти на главную страницу

Настройка виртуальных хостов для использования как имен, так и номеров портов

На моем локальном компьютере у меня есть несколько именованных виртуальных хостов, настроенных в apache, все на порту 80.

NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "/site1"
    ServerName http://site1.local
        <Directory "site1" >
                Options +Includes
                Order Deny,Allow
                Allow from all
        </Directory>
</VirtualHost>   


<VirtualHost *:80>
    DocumentRoot "/site2"
    ServerName http://site2.local
        <Directory "site2" >
                Options +Includes
                Order Deny,Allow
                Allow from all
        </Directory>
</VirtualHost>   

Для тестирования на мобильных устройствах мне нужно, чтобы эти сайты были доступны через IP-адрес моей машины, и в этом случае по умолчанию будет объявлен первый виртуальный хост. Я предполагаю, что мне нужно настроить что-то с прослушиванием на разных портах, чтобы иметь возможность доступа к нескольким виртуальным хостам на одном IP-адресе, но я пробовал довольно много вариантов и не могу получить его, поэтому использование порта работает удаленно но имя по-прежнему работает локально.

Как мне настроить несколько виртуальных хостов, которые имеют имена и прослушиваются на разных портах. Это вообще возможно?

В конце концов я нашел ответ.

Хитрость в том, чтобы использовать

<VirtualHost *:80 *:otherportnumber>

Таким образом, имя сервера работает (потому что прослушивание: 80) и IP-адрес + номер порта работают (потому что никакой другой именованный хост не прослушивает этот номер порта)

В ServerName предложение должно выглядеть так:

ServerName test.example.org

Остальная часть вашей конфигурации подходит для нескольких виртуальных хостов на одном IP и одном порте. Для разных IP-адресов ответ womble правильный.

Конечно, вы просто указываете IP-адрес в <VirtualHost> тег. Это означает, что вам нужно иметь отдельные IP-адреса для каждого виртуального хоста, но если вам нужно различать IP-адреса, они уже будут выделены.