Zum Inhalt springen

Apache/13 Proxy und Cache/Proxy/Grundkonfiguration: Unterschied zwischen den Versionen

Aus Foxwiki
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…“
 
K Textersetzung - „–“ durch „-“
 
(16 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
=== Grundkonfiguration ===
'''Apache/13 Proxy und Cache/Proxy/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
=== Beschreibung ===
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
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
ansprechen, automatisiert werden.


Zunächst einmal müssen Sie die Module für die konkrete Proxy-Funktionalität
Beachten Sie, dass es sehr wichtig ist, einen Proxy-Server vor unberechtigten Zugriffen zu schützen
aktivieren: mod_proxy muss für jede Art von Proxy-Betrieb aktiv sein; daneben
* Schließlich könnte ansonsten jeder Ihren Proxy verwenden, um auf beliebige Internetinhalte zuzugreifen!
können Sie eines oder mehrere der soeben aufgeführten mod_proxy_*-Module
* 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
aktivieren.


Beachten Sie, dass keines dieser Hilfsmodule eigene Direktiven definiert; die
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
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
Beachten Sie, dass keines dieser Hilfsmodule eigene Direktiven definiert; die Konfiguration ist allein Sache von mod_proxy
IP-Adressen müssen Sie gegebenenfalls an Ihr eigenes Netzwerk anpassen):
* 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
# Module laden nur bei DSO-Betrieb:
 
LoadModule proxy_module modules/mod_proxy.so
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)
LoadModule proxy_http_module modules/mod_proxy.so
<syntaxhighlight lang="apache" highlight="" line copy>
# Module laden - nur bei DSO-Betrieb
# Proxy einschalten
LoadModule proxy_module modules/mod_proxy.so
ProxyRequests On
LoadModule proxy_http_module modules/mod_proxy.so
ProxyVia On
 
# Konfiguration für Proxy-Anfragen
# Proxy einschalten
<Proxy *>
ProxyRequests On
ProxyVia On
 
# Konfiguration für Proxy-Anfragen
<Proxy *>
  Order deny,allow
  Order deny,allow
  Deny from all
  Deny from all
  Allow from 192.168.0 127.0.0.1
  Allow from 192.168.0 127.0.0.1
</Proxy>
</Proxy>
 
</syntaxhighlight>
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:
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
<syntaxhighlight lang="apache" highlight="" line copy>
# 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 48:
  ProxyRequests On
  ProxyRequests On
  ProxyVia On
  ProxyVia On
  # Konfiguration für Proxy-Anfragen
  # Konfiguration für Proxy-Anfragen
  <Proxy *>
  <Proxy *>
Zeile 58: Zeile 54:
  Allow from 192.168.0 127.0.0.1
  Allow from 192.168.0 127.0.0.1
  </Proxy>
  </Proxy>
  </VirtualHost>
  </VirtualHost>
</syntaxhighlight>


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 kleine Beispiel zeigt die Reverse-Proxy-Funktionalität
Anfragen für den URL-Pfad /sales aus der URL http://sales.mynet.de. Die zweite
* Es speist Anfragen für den URL-Pfad /sales aus der URL https://sales.mynet.de
Direktive korrigiert die URL in HTTP-Redirect-Headern Umleitungsadressen
* 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
würden sonst nicht in den eingebundenen Adressraum, sondern auf den ReverseProxy selbst verweisen.


ProxyPass /sales http://sales.mynet.de
<syntaxhighlight lang="apache" highlight="" line copy>
ProxyPassReverse /sales http://sales.mynet.de
ProxyPass /sales https://sales.mynet.de
ProxyPassReverse /sales https://sales.mynet.de
</syntaxhighlight>


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. Wenn Sie eine feinere Kontrolle über Reverse-Proxy-Operationen
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 [[Apache/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_
; Beispiel  
proxy_balancer eingebunden werden. Hier wird der jeweils identische Inhalt des
Funktionsweise eine Proxy-Load-Balancings
Verzeichnisses /media der drei Server media1.mynet.de bis media3.mynet.de
* dazu muss zusätzlich das Modul mod_proxy_balancer eingebunden werden
unter dem URL-Pfad /media eingebunden:


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
<syntaxhighlight lang="apache" highlight="" line copy>
  <Proxy balancer://mediahosts>
  <Proxy balancer://mediahosts>
  BalancerMember http://media1.mynet.de
  BalancerMember https://media1.mynet.de
  BalancerMember http://media2.mynet.de
  BalancerMember https://media2.mynet.de
  BalancerMember http://media3.mynet.de
  BalancerMember https://media3.mynet.de
  </Proxy>
  </Proxy>
  ProxyPass /media balancer://mediahosts/media
  ProxyPass /media balancer://mediahosts/media
</syntaxhighlight>
; AJP-Proxy-Funktionalität
Auf die AJP-Proxy-Funktionalität zur Einbindung der Servlet- und JSP-Engine Tomcat wird in Kapitel [[Apache/Webprogrammierung]], eingegangen - sowohl mit als auch ohne Load-Balancer


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

Aktuelle Version vom 11. Mai 2025, 20:42 Uhr

Apache/13 Proxy und Cache/Proxy/Grundkonfiguration

Beschreibung

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 kleine Beispiel zeigt die Reverse-Proxy-Funktionalität

  • Es speist Anfragen für den URL-Pfad /sales aus der URL https://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 https://sales.mynet.de
ProxyPassReverse /sales https://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 Apache/Weiterleitungen und Indizes
Beispiel

Funktionsweise eine 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 https://media1.mynet.de
 BalancerMember https://media2.mynet.de
 BalancerMember https://media3.mynet.de
 </Proxy>

 ProxyPass /media balancer://mediahosts/media
AJP-Proxy-Funktionalität

Auf die AJP-Proxy-Funktionalität zur Einbindung der Servlet- und JSP-Engine Tomcat wird in Kapitel Apache/Webprogrammierung, eingegangen - sowohl mit als auch ohne Load-Balancer