Reverse-Proxy auf Apache für einen einzelnen virtuellen Host

Reverse-Proxy auf Apache für einen einzelnen virtuellen Host

Präambel:

Ich habe einen öffentlich zugänglichen Server mit mehreren virtuellen Hosts konfiguriert. Die Anfragen für einen virtuellen Host müssen an einen Backend-Server gesendet werden. Alle anderen Anfragen müssen lokal bearbeitet werden.

Problem:

Sobald die zu proxiedende Website aktiviert ist, wird die Anforderung für ALLE virtuellen Hosts an die in der ProxyPass-Anweisung angegebene IP-Adresse weitergeleitet. Wenn ich versuche, einen der anderen virtuellen Hosts zu besuchen, erhalte ich die Webseite von der proxieden Website. Wenn ich die proxiede Website deaktiviere, nehmen alle anderen virtuellen Hosts ihren normalen Betrieb wieder auf und werden lokal bedient.

Konfiguration:

Die Konfiguration, die ich auf dem öffentlich zugänglichen Server für die virtuellen Hosts habe: (andere virtuelle Hosts sind Kopien derselben Konfiguration)

<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>

Die Konfiguration, die ich auf dem öffentlich zugänglichen Server für den zu proxidierenden virtuellen Host habe:

<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>

Antwort1

Versuchen

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

verwandte Informationen