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

обратный прокси на apache для одного виртуального хоста

Преамбула:

Я настроил общедоступный сервер с несколькими виртуальными хостами. Запросы для одного виртуального хоста необходимо отправлять на внутренний сервер. Все остальные запросы необходимо обслуживать локально.

Проблема:

Запрос на ВСЕ виртуальные хосты передается на 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