Я использую 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 и т. Д.), Но вы должны знать об этом.