Два https-виртуальных хоста на одном сервере: один и тот же порт, разные поддомены

Два https-виртуальных хоста на одном сервере: один и тот же порт, разные поддомены

Я пытался найти этот сценарий, но не могу найти именно эту настройку. Я хочу что-то вроде следующего:

Я хочу, чтобы два поддомена перенаправляли на разные https-сайты с разными корнями документов. У нас есть сертификат ssl уровня домена (*example.com). Похоже, следующее не работает, так как когда я ставлю более одного виртуального хоста для каждого порта, я получаю сообщение «Эта веб-страница недоступна». Есть какие-нибудь предложения?

NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:80>
  ServerName subdomain1.example.com
  RedirectPermanent / https://subdomain1.example.com
</VirtualHost>
<VirtualHost *:80>
  ServerName subdomain2.example.com
  RedirectPermanent / https://subdomain2.example.com
</VirtualHost>
<VirtualHost *:443>
  DocumentRoot /srv/www/subd1/
  ServerName subdomain1.example.com
  # more directives
</VirtualHost>
<VirtualHost *:443>
  DocumentRoot /srv/www/subd2/
  ServerName subdomain2.example.com
  # more directives
</VirtualHost>

У нас есть DNS, направляющий subdomain1.example.com и subdomain2.example.com на IP-адрес нашего сервера.

Редактировать: Исправлена ​​ошибка в примере конфигурации (отсутствует директива ServerName) и добавлена ​​информация о нашем DNS.

решение1

Ваш пример конфигурации должен работать (при условии, что вы правильно настроили записи DNS, соответствующие этим виртуальным хостам, для разрешения на нужный сервер), но вы, похоже, не включили ServerNameдирективы — попробуйте следующее (при условии, что это не просто ошибка в построении вашего примера конфигурации):

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
  ServerName subdomain1.example.com
  RedirectPermanent / https://subdomain1.example.com
</VirtualHost>

<VirtualHost *:80>
  ServerName subdomain2.example.com
  RedirectPermanent / https://subdomain2.example.com
</VirtualHost>

<VirtualHost *:443>
  DocumentRoot /srv/www/subd1/
  ServerName subdomain1.example.com
  # more directives
</VirtualHost>

<VirtualHost *:443>
  DocumentRoot /srv/www/subd2/
  ServerName subdomain2.example.com
  # more directives
</VirtualHost>

Связанный контент