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