前言:
我已經配置了具有多個虛擬主機的可公開存取的伺服器。對一台虛擬主機的請求需要傳送到後端伺服器。所有其他請求都需要在本地得到滿足。
問題:
一旦啟用需要代理的網站,所有虛擬主機的請求都會傳遞到 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