NameVirtualHost *: 80 не имеет VirtualHosts

У меня есть два доменных имени, два сертификата SSL и два IP-адреса. Я пытаюсь настроить для них свои файлы виртуального хоста apache.

Сначала я закомментировал все экземпляры «NameVirtualHost» и «Listen» для портов 80 и 443. Затем я проделал следующее с файлами виртуальных хостов.

Файл VirtualHost для domain1:

NameVirtualHost 1.1.1.1:80
Listen 1.1.1.1:80
Listen 1.1.1.1:443
<VirtualHost 1.1.1.1:80>
    ServerName domain1.com
    ...
</VirtualHost>
<VirtualHost 1.1.1.1:443>
    ...
</VirtualHost>

Файл VirtualHost для домена 2:

NameVirtualHost 2.2.2.2:80
Listen 2.2.2.2:80
Listen 2.2.2.2:443
<VirtualHost 2.2.2.2:80>
    ServerName domain2.com
    ...
</VirtualHost>
<VirtualHost 2.2.2.2:443>
    ...
</VirtualHost>

person Jay    schedule 23.08.2011    source источник
comment
NameVirtualHost устарел и больше не требуется.   -  person andreszs    schedule 21.07.2017


Ответы (2)


Где-то в вашей конфигурации, вероятно, в файле конфигурации Apache по умолчанию (я думаю, /etc/apache2/httpd.conf в Ubuntu? Кто-нибудь может исправить меня в комментариях), есть строка, которая выглядит так:

NameVirtualHost *:80

# Also
Listen 80
Listen 443

Закомментируйте их и добавьте в свои VirtualHost файлы конфигурации:

Listen 111.111.111.111:80
Listen 222.222.222.222:80
# If also using SSL
Listen 111.111.111.111:443
Listen 222.222.222.222:443

NameVirtualHost 111.111.111.111:80
NameVirtualHost 222.222.222.222:80

Во многих конфигурациях Apache по умолчанию директивы Listen и NameVirtualHost поставляются с подстановочными знаками или глобально применяются ко всем сетевым интерфейсам. Поскольку вы используете несколько IP-адресов, привязанных к разным конфигурациям, вам нужно быть более конкретным в своих директивах конфигурации, чем в файле конфигурации по умолчанию вашего дистрибутива.

person Michael Berkowski    schedule 23.08.2011
comment
/etc/apache2/httpd.conf пуст. /etc/apache2/httpd.conf не имеет NameVirtualHost или Listen. Все еще ищу. - person Jay; 23.08.2011
comment
@Jay попробуй grep -r Listen /etc/apache2 и grep -r NameVirtualHost /etc/apache2 - person Michael Berkowski; 23.08.2011
comment
Подтверждая понимание ... закомментируйте строку NameVirtualHost и строки Listen. Теперь я обновлю исходный пост, добавив, что я понимаю, как изменять файлы виртуального хоста. Спасибо. - person Jay; 23.08.2011
comment
@Jay Да, правильно. Закомментируйте исходные директивы и добавьте свои новые - person Michael Berkowski; 23.08.2011
comment
@Jay Если Listen директив больше нет, возможно, что-то еще находится на 80-м порту для 222 IP. - person Michael Berkowski; 23.08.2011
comment
если у вас есть время, просмотрите обновление выше, связанное с вашим последним комментарием. - person Jay; 24.08.2011
comment
Я опубликовал результаты к вашему последнему комментарию. - person Jay; 24.08.2011
comment
@Jay У меня заканчиваются идеи. Оба адреса явно используются одним и тем же процессом apache. Я собираюсь проголосовать за то, чтобы переместить это в serverfault, и, надеюсь, другие сделают то же самое, чтобы он был перенесен. - person Michael Berkowski; 24.08.2011

I had ignored the same error for the 2 months I have had an Ubuntu server. I found this post nicely solved the error. Thank you Michael!. As did you Jay, I found the culprit at /etc/apache2/ports.conf . I tried simply this:

# NameVirtualHost *:80
I only commented out that line and no other changes and no more

«NameVirtualHost *: 80 не имеет VirtualHosts»

person Randy Skretka    schedule 08.01.2012