Zum Inhalt springen

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

Aus Foxwiki
K Textersetzung - „Apache2.4/“ durch „Apache/“
K Textersetzung - „–“ durch „-“
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:


=== Beschreibung ===
=== 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
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
Beachten Sie, dass es sehr wichtig ist, einen Proxy-Server vor unberechtigten Zugriffen zu schützen
Zeile 14: Zeile 14:


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)
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)
<syntaxhighlight lang="apache" highlight="" line>
<syntaxhighlight lang="apache" highlight="" line copy>
# 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
Zeile 36: Zeile 36:
* In allen anderen Fällen sollten Sie einen 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
* Die folgende Variante verarbeitet Proxy-Anfragen nur auf Port 3128, der 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
<syntaxhighlight lang="apache" highlight="" line>
<syntaxhighlight lang="apache" highlight="" line copy>
  # 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
Zeile 60: Zeile 60:


Das kleine Beispiel zeigt die Reverse-Proxy-Funktionalität
Das kleine Beispiel zeigt die Reverse-Proxy-Funktionalität
* Es speist Anfragen für den URL-Pfad /sales aus der URL http://sales.mynet.de
* 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
* 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


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


Zeile 78: Zeile 78:


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


Zeile 89: Zeile 89:


; AJP-Proxy-Funktionalität
; 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 Tomcat wird in Kapitel [[Apache/Webprogrammierung]], eingegangen - sowohl mit als auch ohne Load-Balancer
 
[[Kategorie:Apache2.4]]

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