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

Запуск двух веб-сайтов с двумя поддоменами httpd

У меня есть домен example.com с двумя поддоменами: website.example.com и cloud.example.com. Я установил A-Record для них обоих на IP-адрес моего сервера.

мой сервер - это VPS с centos7 и имеет два каталога ниже /var/www/html/ для каждого из доменов:

Я улучшил свой httpd.conf, чтобы он содержал:

Listen 80
Listen 81

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot /var/www/html/website.example.com
ServerName www.website.example.com
</VirtualHost>

NameVirtualHost *:81
<VirtualHost *:81>
DocumentRoot /var/www/html/cloud
ServerName www.cloud.example.com
</VirtualHost>

Теперь, когда я перезапускаю httpd и запускаю wget, я получаю следующие ответы:

Это приводит к опыту браузера -> Когда я вхожу website.example.com в моем браузере я попадаю на свой сайт wordpress. Но когда я вхожу cloud.example.com Я также попадаю на свой сайт wordpress вместо сайта owncloud.

Что мне не хватает?

Вы установили свой ServerName к www.cloud.example.com, но попробуйте получить к нему доступ с помощью cloud.example.com. Также вы забыли порт 81.

Либо установите его на cloud.example.com или добавить ServerAlias cloud.example.com.

Вам не нужно устанавливать cloud.example.com на другом порту. Apache отлично может обрабатывать разные VirtualHosts на одном и том же порту. Просто оставьте его на 80-м порту.

Должно получиться так:

Listen 80
# Listen 81
# Just stay on port 80, don't make it more complicated for the clients

# Listen for virtual host requests on all IP addresses
# NameVirtualHost *:80
# This is not needed anymore with Apache 2.4

<VirtualHost *:80>
DocumentRoot /var/www/html/website.example.com
ServerName website.example.com
ServerAlias www.website.example.com
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /var/www/html/cloud
ServerName cloud.example.com
</VirtualHost>