apache 上單一虛擬主機的反向代理

apache 上單一虛擬主機的反向代理

前言:

我已經配置了具有多個虛擬主機的可公開存取的伺服器。對一台虛擬主機的請求需要傳送到後端伺服器。所有其他請求都需要在本地得到滿足。

問題:

一旦啟用需要代理的網站,所有虛擬主機的請求都會傳遞到 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

相關內容