У меня есть следующая структура каталогов для нескольких веб-сайтов и служб
/var/www/html/site1
/var/www/html/site2
/var/www/html/site3
/var/www/html/serv1
/var/www/html/serv2
site1
папка содержит веб-сайт site1domain.com
I хотите открыть службы webapp, размещенные в папках serv1
и serv2
, чтобы показать их как
service1.site1domain.com
service2.site1domain.com
Итак, я попытался настроить виртуальный хост в site1domain.conf
таким образом
<VirtualHost *:80>
ServerName site1domain.com
ServerAlias www.site1domain.com
DocumentRoot /var/www/html/site1
<Directory /var/www/html/site1>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName service1.site1domain.com
ProxyPreserveHost On
ProxyRequest Off
ProxyPass "/" "localhost/serv1"
ProxyPassReverse "/" "localhost/serv1"
</VirtualHost>
<VirtualHost *:80>
ServerName service2.site1domain.com
ProxyPreserveHost On
ProxyRequest Off
ProxyPass "/" "localhost/serv2"
ProxyPassReverse "/" "localhost/serv2"
</VirtualHost>
Но блоки кода виртуального хоста, связанные со службами, вызывают сбой сервера: выход с кодом ошибки 1.
Может ли кто-нибудь помочь мне понять, как их правильно настроить?
Как насчет того, чтобы:
<VirtualHost *:80>
ServerName service1.site1domain.com
DocumentRoot /var/www/html/serv1
</VirtualHost>
<VirtualHost *:80>
ServerName service2.site1domain.com
DocumentRoot /var/www/html/serv2
</VirtualHost>
Mod_proxy не нужен.
Ошибка вызвана вашими директивами ProxyPass
и ProxyPassReverse
, не имеющими части URL-адреса scheme . Правильный синтаксис будет, например,
ProxyPass "/" "http://localhost/serv1"
ProxyPassReverse "/" "http://localhost/serv1"
. Однако Эндрю прав в том, что обратный прокси не требуется и не является лучшей технологией для этого варианта использования.