在一个单一的虚拟主机的Apache的反向代理

前言:

我已经configuration了一个具有多个虚拟主机的公共访问服务器 一个虚拟主机的请求需要发送到后端服务器。 所有其他请求都需要在本地进行。

问题:

一旦需要代理的网站被启用,所有虚拟主机的请求将被传递到ProxyPass指令中指定的IP地址。 当我尝试访问任何其他虚拟主机时,我从代理网站上获取网页。 禁用代理网站时,所有其他虚拟主机恢复正常操作并在本地进行服务。

configuration:

我在虚拟主机可公开访问的服务器上的configuration:(其他虚拟主机是同一个configuration的副本)

<VirtualHost *:80> ServerName www.mainsite.com ServerAlias mainsite.com ServerAdmin [email protected] 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> 

我在可公开访问的虚拟主机上进行代理的configuration:

 <VirtualHost *:80> ServerName calendar.othersite.com ServerAdmin [email protected] 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