前言:
我配置了一个具有多个虚拟主机的可公开访问的服务器。对一个虚拟主机的请求需要发送到后端服务器。所有其他请求都需要在本地处理。
问题:
一旦启用需要代理的网站,所有虚拟主机的请求都会传递到 ProxyPass 指令中指定的 IP 地址。当我尝试访问任何其他虚拟主机时,我都会从代理网站获取网页。禁用代理网站后,所有其他虚拟主机都会恢复正常运行并在本地提供服务。
配置:
我在可公开访问的服务器上为虚拟主机进行的配置:(其他虚拟主机是相同配置的副本)
<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>
我在可公开访问的服务器上为要代理的虚拟主机进行了以下配置:
<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>
答案1
尝试
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