Apache/13 Proxy und Cache/Proxy/Grundkonfiguration: Unterschied zwischen den Versionen
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…“ |
Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
=== Grundkonfiguration === | === Grundkonfiguration === | ||
Bevor im Folgenden die einzelnen Proxy-Direktiven vorgestellt werden, finden | 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 | ||
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 | Beachten Sie, dass es sehr wichtig ist, einen Proxy-Server vor unberechtigten Zugriffen zu schützen | ||
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 | ||
ansprechen, automatisiert werden | |||
Zunächst einmal müssen Sie die Module für die konkrete Proxy-Funktionalität | 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 | ||
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 | Beachten Sie, dass keines dieser Hilfsmodule eigene Direktiven definiert; die Konfiguration ist allein Sache von mod_proxy | ||
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 | ||
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 | 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) | ||
IP-Adressen müssen Sie gegebenenfalls an Ihr eigenes Netzwerk anpassen) | # Module laden – nur bei DSO-Betrieb | ||
# Module laden – nur bei DSO-Betrieb | |||
LoadModule proxy_module modules/mod_proxy.so | LoadModule proxy_module modules/mod_proxy.so | ||
LoadModule proxy_http_module modules/mod_proxy.so | LoadModule proxy_http_module modules/mod_proxy.so | ||
# Proxy einschalten | # Proxy einschalten | ||
ProxyRequests On | ProxyRequests On | ||
| Zeile 33: | Zeile 25: | ||
</Proxy> | </Proxy> | ||
Mit dieser Einstellung werden Proxy-Anfragen über den Standard-TCP-Port abgewickelt, an dem Apache lauscht | Mit dieser Einstellung werden Proxy-Anfragen über den Standard-TCP-Port abgewickelt, an dem Apache lauscht | ||
gewöhnlichen Webserver benutzen können | * Damit wird allerdings jede Anfrage als ProxyAnfrage betrachtet, sodass Sie den entsprechenden Apache-Server nicht mehr als gewöhnlichen Webserver benutzen können | ||
Host Ihr Wunsch war, ist es in Ordnung | * Falls das auf einem bestimmten Host Ihr Wunsch war, ist es in Ordnung | ||
zusätzlichen Port konfigurieren und einen virtuellen Host als HTTP-Proxy einrichten | * In allen anderen Fällen sollten Sie einen zusätzlichen Port konfigurieren und einen virtuellen Host als HTTP-Proxy einrichten | ||
auch von reinen Proxy-Cache-Produkten wie squid verwendet wird | * Die folgende Variante verarbeitet Proxy-Anfragen nur auf Port 3128, der auch von reinen Proxy-Cache-Produkten wie squid verwendet wird | ||
# Module laden – nur bei DSO-Betrieb | # Module laden – nur bei DSO-Betrieb | ||
LoadModule proxy_module modules/mod_proxy.so | LoadModule proxy_module modules/mod_proxy.so | ||
LoadModule proxy_http_module modules/mod_proxy.so | LoadModule proxy_http_module modules/mod_proxy.so | ||
# Zusätzlicher Port für Proxy-Anfragen | # Zusätzlicher Port für Proxy-Anfragen | ||
Listen 3128 | Listen 3128 | ||
# Virtueller Host für Proxy-Port 3128 | # Virtueller Host für Proxy-Port 3128 | ||
<VirtualHost _default_:3128> | <VirtualHost _default_:3128> | ||
| Zeile 51: | Zeile 42: | ||
ProxyRequests On | ProxyRequests On | ||
ProxyVia On | ProxyVia On | ||
# Konfiguration für Proxy-Anfragen | # Konfiguration für Proxy-Anfragen | ||
<Proxy *> | <Proxy *> | ||
| Zeile 61: | Zeile 51: | ||
</VirtualHost> | </VirtualHost> | ||
In den Browsern Ihres lokalen Netzwerks können Sie nun den neuen Proxy aktivieren; dies funktioniert je nach Browser unterschiedlich, und eine Beschreibung | 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 | ||
würde den Rahmen dieser Anleitung sprengen | |||
Das nächste kleine Beispiel zeigt die Reverse-Proxy-Funktionalität; es speist | 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 | ||
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 | ||
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 | ProxyPass /sales http://sales.mynet.de | ||
ProxyPassReverse /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 | 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 | Schließlich soll das Einbinden der externen Ressource in der Regel für alle Anfragen gelten | ||
benötigen, können Sie die entsprechenden Funktionen von mod_rewrite verwenden (siehe Kapitel 8, »Weiterleitungen und Indizes«) | * 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_ | 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 | proxy_balancer eingebunden werden | ||
Verzeichnisses /media der drei Server media1.mynet.de bis media3.mynet.de | * 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 | ||
unter dem URL-Pfad /media eingebunden | |||
<Proxy balancer://mediahosts> | <Proxy balancer://mediahosts> | ||
| Zeile 88: | Zeile 74: | ||
ProxyPass /media balancer://mediahosts/media | ProxyPass /media balancer://mediahosts/media | ||
Auf die AJP-Proxy-Funktionalität zur Einbindung der Servlet- und JSP-Engine | 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 | ||
Tomcat wird in Kapitel 15, »Technologien zur Webprogrammierung«, eingegangen – sowohl mit als auch ohne Load-Balancer | |||
Version vom 4. März 2025, 10:48 Uhr
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
- 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