Я читал несколько вопросов по этой теме, но мне кажется, что это не работает ...
У меня есть сервер под управлением CentOS с HTTPD, на котором запущен 1 веб-сайт под корневым каталогом httpd по умолчанию:
Listen 8080
DocumentRoot "/var/www/html"
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>`
Я также использую Varnish: Varnish прослушивает порт 80 и перенаправляет запросы на httpd, который прослушивает порт 8080
Теперь я хочу запустить второй домен на этом сервере, поэтому я добавил файл .conf в / etc / httpd / conf / со следующим:
<VirtualHost *:8080>
ServerAdmin root@localhost
DocumentRoot /var/www/vhosts/domainx.be
ServerName domainx.be
ErrorLog logs/domainx-error_log
CustomLog logs/domainx-access_log common
</VirtualHost>
Когда я применяю вышеизложенное, весь трафик (включая трафик корневого домена) направляется в domainx. Когда я меняю порт виртуального хоста на 80, domainx перенаправляется на корневой хост.
Это первый раз, когда я делаю это без установки чего-то вроде Plesk of Webmin, поэтому я не знаю, что делать дальше ...
Сделайте записи vhosts для каждого виртуального хоста, даже для «настоящего» сайта, и не забудьте указать ServerName. Это должно исправить вашу настройку Apache.
Лично я также всегда запускаю apache на 80-м порту 127.0.0.1 и Varnish на 80-м публичном IP-порту. Таким образом, у вас не будет проблем с $ _SERVER vars, думая, что Varnish работает на 8080-м порту.
Создайте виртуальный хост для вашего веб-сайта, который указывает на корень документа. Не забудьте добавить NameVirtualHost *:8080
.
Поместите конфигурацию серверной части в один файл, а затем включите ее на основе запрошенного имени хоста:
if (req.http.Host == "domainx.be") { include "/etc/varnish/domainx.be.vcl"; }