Преамбула:
Я настроил общедоступный сервер с несколькими виртуальными хостами. Запросы для одного виртуального хоста необходимо отправлять на внутренний сервер. Все остальные запросы необходимо обслуживать локально.
Проблема:
Запрос на ВСЕ виртуальные хосты передается на IP-адрес, указанный в директиве ProxyPass, после того, как веб-сайт, который необходимо проксировать, включен. Когда я пытаюсь посетить любой из других виртуальных хостов, я получаю веб-страницу с прокси-сайта. При отключении проксированного веб-сайта все остальные виртуальные хосты возобновляют нормальную работу и обслуживаются локально.
Конфиг:
Конфигурация, которая у меня есть на общедоступном сервере для виртуальных хостов: (другие виртуальные хосты являются копиями той же конфигурации)
<VirtualHost *:80>
ServerName www.mainsite.com
ServerAlias mainsite.com
ServerAdmin admin@mainsite.com
DirectoryIndex index.php
DocumentRoot /var/www/mainsite.com
<Directory />
AllowOverride None
</Directory>
LogLevel info
ErrorLog /var/log/mainsite.com_err.log
CustomLog /var/log/mainsite.com_access.log combined
</VirtualHost>
Конфигурация, которая у меня есть на общедоступном сервере для проксирования виртуального хоста:
<VirtualHost *:80>
ServerName calendar.othersite.com
ServerAdmin admin@othersite.com
ProxyRequests Off
<Location />
ProxyPass http://192.168.0.1/
ProxyPassReverse http://192.168.0.1/
</Location>
<Proxy>
Order Allow,Deny
Allow from all
</Proxy>
TransferLog /var/log/othersite.com_access.log
ErrorLog /var/log/othersite.com_err.log
CustomLog /var/log/othersite.com.log combined
LogLevel debug
</VirtualHost>
Пытаться
sudo ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled
sudo ln -s /etc/apache2/mods-available/proxy_http.load /etc/apache2/mods-enabled
sudo /etc/init.d/apache2 restart