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

Предупреждение при добавлении нескольких VirtualHosts на порт 443 - «_default_ VirtualHost перекрывается на порте 443, первый имеет приоритет»

Я использую Ubuntu 12.10, и у меня есть следующие 4 записи VirtualHost в /etc/apache2/apache2.conf

4 записи VirtualHost предназначены для 2 отдельных сайтов, test.example.com и test2.example.com, по одной записи для HTTP и по одной для HTTPS.

<VirtualHost *:443>
   DocumentRoot /var/www/test
   ServerName test.example.com
   # Other settings goes here
</VirtualHost>


<VirtualHost *:80>
   DocumentRoot /var/www/test
   ServerName test.example.com
   # Other settings goes here
</VirtualHost>

<VirtualHost *:443>
   DocumentRoot /var/www/test2
   ServerName test2.example.com
   # Other settings goes here
</VirtualHost>


<VirtualHost *:80>
   DocumentRoot /var/www/test2
   ServerName test2.example.com
   # Other settings goes here
</VirtualHost>

Моя проблема Когда я сохраняю и перезапускаю apache, я получаю следующее предупреждение: -

* Restarting web server apache2
[Sun Feb 17 18:30:09 2013] [warn] _default_ VirtualHost overlap on port 443, the first has precedence
 ... waiting [Sun Feb 17 18:30:10 2013] [warn] _default_ VirtualHost overlap on port 443, the first has precedence

И я получаю содержимое /var/www/test когда я открываю оба test.example.com и test2.example.com

Есть идеи, в чем проблема?

Вам нужно добавить NameVirtualHost *:443 чтобы он работал.
NameVirtualHost *:80 также должен быть в вашей конфигурации, вероятно, он установлен по умолчанию, но я не использую Ubuntu, поэтому я не уверен, в каком файле.

Также небольшой совет:
Запуск нескольких сайтов HTTPS на одном IP-адресе может иметь недостатки, особенно старые клиенты (IE8 / Windows XP) не будут поддерживать SNI.
Это может иметь смысл в вашей ситуации (только для тестирования, используется подстановочный сертификат * .example.com и т. Д.), Но вы должны знать об этом.