Zum Inhalt springen

Apache/13 Proxy und Cache/Proxy/Grundkonfiguration

Aus Foxwiki
Version vom 4. März 2025, 10:29 Uhr von Dirkwagner (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „=== Grundkonfiguration === Bevor im Folgenden die einzelnen Proxy-Direktiven vorgestellt werden, finden Sie hier als ersten Anhaltspunkt zwei einfache, aber vollständige Proxy-Konfigurationen – die erste für einen Forward-Proxy, die zweite für einen Reverse-Proxy. Beachten Sie, dass es sehr wichtig ist, einen Proxy-Server vor unberechtigten Zugriffen zu schützen. Schließlich könnte ansonsten jeder Ihren Proxy verwenden, um auf beliebige Interneti…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Grundkonfiguration

Bevor im Folgenden die einzelnen Proxy-Direktiven vorgestellt werden, finden Sie hier als ersten Anhaltspunkt zwei einfache, aber vollständige Proxy-Konfigurationen – die erste für einen Forward-Proxy, die zweite für einen Reverse-Proxy.

Beachten Sie, dass es sehr wichtig ist, einen Proxy-Server vor unberechtigten Zugriffen zu schützen. Schließlich könnte ansonsten jeder Ihren Proxy verwenden, um auf beliebige Internetinhalte zuzugreifen! In aller Regel werden ProxyZugriffe deshalb auf das lokale Netzwerk beschränkt; Authentifizierung ist ebenfalls möglich und kann in den meisten Browsern, die den entsprechenden Proxy ansprechen, automatisiert werden.

Zunächst einmal müssen Sie die Module für die konkrete Proxy-Funktionalität aktivieren: mod_proxy muss für jede Art von Proxy-Betrieb aktiv sein; daneben können Sie eines oder mehrere der soeben aufgeführten mod_proxy_*-Module aktivieren.

Beachten Sie, dass keines dieser Hilfsmodule eigene Direktiven definiert; die Konfiguration ist allein Sache von mod_proxy. In dieser Grundanleitung wird zunächst einmal nur die Einrichtung eines HTTP-Proxys vorgestellt; Einzelheiten für die anderen Protokolle entnehmen Sie bitte der anschließenden Direktivenreferenz.

Mit folgenden Anweisungen machen Sie Apache zum Forward-Proxy für HTTPAnfragen, der aus Sicherheitsgründen auf das lokale Netzwerk beschränkt ist (die IP-Adressen müssen Sie gegebenenfalls an Ihr eigenes Netzwerk anpassen):

# Module laden – nur bei DSO-Betrieb:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy.so

# Proxy einschalten
ProxyRequests On
ProxyVia On
# Konfiguration für Proxy-Anfragen
<Proxy *>
Order deny,allow
Deny from all
Allow from 192.168.0 127.0.0.1
</Proxy>

Mit dieser Einstellung werden Proxy-Anfragen über den Standard-TCP-Port abgewickelt, an dem Apache lauscht. Damit wird allerdings jede Anfrage als ProxyAnfrage betrachtet, sodass Sie den entsprechenden Apache-Server nicht mehr als gewöhnlichen Webserver benutzen können. Falls das auf einem bestimmten Host Ihr Wunsch war, ist es in Ordnung. In allen anderen Fällen sollten Sie einen zusätzlichen Port konfigurieren und einen virtuellen Host als HTTP-Proxy einrichten. Die folgende Variante verarbeitet Proxy-Anfragen nur auf Port 3128, der auch von reinen Proxy-Cache-Produkten wie squid verwendet wird:

  1. Module laden – nur bei DSO-Betrieb:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy.so

# Zusätzlicher Port für Proxy-Anfragen
Listen 3128

# Virtueller Host für Proxy-Port 3128
<VirtualHost _default_:3128>
# Proxy einschalten
ProxyRequests On
ProxyVia On

# Konfiguration für Proxy-Anfragen
<Proxy *>
Order deny,allow
Deny from all
Allow from 192.168.0 127.0.0.1
</Proxy>
</VirtualHost>

In den Browsern Ihres lokalen Netzwerks können Sie nun den neuen Proxy aktivieren; dies funktioniert je nach Browser unterschiedlich, und eine Beschreibung würde den Rahmen dieser Anleitung sprengen.

Das nächste kleine Beispiel zeigt die Reverse-Proxy-Funktionalität; es speist Anfragen für den URL-Pfad /sales aus der URL http://sales.mynet.de. Die zweite Direktive korrigiert die URL in HTTP-Redirect-Headern – Umleitungsadressen würden sonst nicht in den eingebundenen Adressraum, sondern auf den ReverseProxy selbst verweisen.

ProxyPass /sales http://sales.mynet.de
ProxyPassReverse /sales http://sales.mynet.de

Für Reverse-Proxy-Funktionen brauchen Sie ProxyRequests nicht zu aktivieren, und Sie benötigen auch keinen virtuellen Host und keinen <Proxy>-Container. Schließlich soll das Einbinden der externen Ressource in der Regel für alle Anfragen gelten. Wenn Sie eine feinere Kontrolle über Reverse-Proxy-Operationen benötigen, können Sie die entsprechenden Funktionen von mod_rewrite verwenden (siehe Kapitel 8, »Weiterleitungen und Indizes«).

Das letzte kurze Beispiel demonstriert die Funktionsweise des (seit Apache 2.1beta verfügbaren) Proxy-Load-Balancings; dazu muss zusätzlich das Modul mod_ proxy_balancer eingebunden werden. Hier wird der jeweils identische Inhalt des Verzeichnisses /media der drei Server media1.mynet.de bis media3.mynet.de unter dem URL-Pfad /media eingebunden:

<Proxy balancer://mediahosts>
BalancerMember http://media1.mynet.de
BalancerMember http://media2.mynet.de
BalancerMember http://media3.mynet.de
</Proxy>
ProxyPass /media balancer://mediahosts/media

Auf die AJP-Proxy-Funktionalität zur Einbindung der Servlet- und JSP-Engine Tomcat wird in Kapitel 15, »Technologien zur Webprogrammierung«, eingegangen – sowohl mit als auch ohne Load-Balancer.