translation of the attached file, mod_proxy.html.de, was done with the 
original mod_proxy.html.en from the cvs-repository, Sep 19th 2002.

well - I've done a bit on my own.
Example:
- removed dead link to # Using Netscape hostname shortcuts
- shortened due to the ProxyRemote directive the chapter about domains, 
subnet, ipaddr 
that should be general knowledge of a webmaster/system administrator, and is 
not useful for a quick overview, and there is additionally a link to DNS 
caveats.
- added 1 or 2 sentences for ProxyPass and ProxyPassReverse

I'm missing a good example for a reverse proxy configuration with ProyRemote 
embedded in a virtual host and hidden by another forward proxy.
Anyone here :- ?

i.t
-- 
 . ___
 |  |  Irmund     Thum
 |  |   
Title: mod_proxy - Apache HTTP Server
<-

Apache Modul mod_proxy

Beschreibung: HTTP/1.1 proxy/gateway Server
Status: Erweiterung
Modul-Id: proxy_module
Quellcode: mod_proxy.c

Zusammenfassung

Warnung

Dieses Dokument ist aktualisiert worden, um die Änderungen in Betracht zu ziehen, die in der Version 2.0 des Apache HTTP Servers vorgenommen wurden.  Da einige der Informationen noch ungenau sein können, verwenden Sie diese bitte mit Bedacht.

Dieses Modul implementiert ein proxy/gateway für Apache  Es implementiert Proxy-Fähigkeit für ftp, CONNECT (für SSL), HTTP/0.9, HTTP/1.0 und HTTP/1.1.  Das Modul kann konfiguriert werden, um andere Proxymodule für diese und andere Protokolle anzuschließen.

Dieses Modul war experimentell in Apache 1.1.x.  Verbesserungen und Fehlerbeseitigungen wurden in Apache v1.2.x und in Apache v1.3.x gemacht, dann unterging das Modul einer Generalüberholung für Apache v2.0.  Die Protokollunterstützung wurde zu HTTP/1.1 verbessert, und Filterunterstützung wurde ermöglicht.

Notieren Sie bitte, daß die cache-Funktion, die im mod_proxy bis zu Apache v1.3.x vorhanden ist, vom mod_proxy entfernt worden und im neuen Modul  mod_cache enthalten ist.

Sollten Sie beim Verbindungsaufbau zu Internetservern  SSL brauchen, lesen Sie bitte die SSLProxy* Direktiven in mod_ssl.

Setzen Sie keinen Proxy mit  ProxyRequests auf solange Sie den Server nicht sicher gemacht haben. Offene Proxyserver sind gefährlich für Ihr Netzwerk und das Internet im allgemeinen.

top

Allgemeine Konfigurationsthemen

Forward und Reverse Proxy

Apache kann als forward und reverse Proxy konfiguriert werden.

Ein Forward Proxy ist ein Transitsystem, das einem Client-Browser die Verbindung zu einem entfernten Netzwerk ermöglicht worauf dieser normalerweise keinen Zugriff hat. Ein solcher Proxy kann auch Daten im Cache ablegen, was die Netzbelastung zwischen dem Rechner des Proxy und dem entfernten Webserver reduziert.

Einen Forward Proxy, einen Weiterleiter, konfiguriert man mit der  ProxyRemote Direktive. Zusätzliches Cachen der Daten erfordert eine Konfiguration des Moduls mod_cache. Bei sehr hohen Ansprüchen an den Cache, GB-Bereich und mehrere hundert oder  tausend Benutzer, sollten Sie Squid einsetzen.

Ein Reverse Proxy ist ein Webserver, der so konfiguriert ist, daß er Seiten eines anderen Webservers einblendet - und das zusätzlich zu eigenen von der Festplatte stammenden Dokumenten oder solchen, die dynamisch mit Skripten erzeugt wurden. Dem Client bleibt der Ursprung der eingeblendeten Seiten verborgen.

Ist der Reverse Proxy mit mod_cache konfiguriert, kann er auch als Cache für langsame Webserver eingesetzt werden. Damit lassen sich fortgeschrittene URL-Strategien und Verwaltungstechniken einsetzen in dem Sinn, daß Webseiten verschiedener Webserver oder Betriebssysteme innerhalb eines gemeinsamen Namensraums koexistieren. Zusätzlich bietet sich hier die Möglichkeit ein zentrales Loggen der Zugriffe zu implementieren.

Einen Reverse Proxy konfiguriert man mit den Direktiven ProxyPass und ProxyPassReverse. Auch hierbei kann mit mod_cache ein Zusatzspeicher angelegt werden. 

Zugriff auf den Proxy kontrollieren 

Zugriffskontrolle auf den Proxy erfolgt mit der <Proxy>-Kontrollstruktur; Beispiel:

<Proxy *>
Order Deny,Allow
Deny from all
Allow from 192.168.0
</Proxy>

Wenn man einen Reverse Proxy konfiguriert, wird die Zugriffskontrolle übernommen von den Anweisungen in der <directory> -Konfiguration. 

 Warum kann Dateityp xxx nicht per FTP heruntergeladen werden?

Ein wahrscheinlicher Grund wird sein, daß der betreffende Dateityp nicht als  application/octet-stream in der Datei mime.types konfiguriert ist. Eine solche Zeile könnte z.B. sein:

application/octet-stream bin dms lha lzh exe class tgz taz

 Wie kann man ein Herunterladen mittels FTP ASCII von einer bestimmten Datei erzwingen?

In der seltenen Situation wo ein solches Herunterladen mittels der FTP ASCII Übermittlungsmethode nötig ist (Standardtransfer ist binär), kann man die Voreinstellung von mod_proxy umgehen, indem man den URI ergänzt mit dem Zusatz ;type=a, um den ASCII-Transfer zu erzwingen (FTP Verzeichniseinträge werden immer im ASCII-Modus ausgeführt). 

 Wie erhält man via FTP auf Dateien außerhalb seines Benutzerverzeichnisses Zugriff?

Eine FTP URI wird normalerweise relativ zu dem Benutzerverzeichnis des Benutzers interpretiert, der sich auf dem Server einloggt. Um in höher gelgene Stockwerke zu gelangen, kann man beispielsweise nicht /../ angeben, da die Punkte vom Browser interpretiert und nicht zum FTP-Server gesandt werden. Um dieses Problem zu lösen, wurde der sogenannte "Squid %2f hack" in den Apache FTP-Proxy implementiert; diese Lösung wird auch in anderen Proxyservern, wie z.B dem
Squid Proxy Cache benutzt. Indem man ein /%2f an den Pfad der Anforderung anhängt, kann man das Startverzeichnis für FTP auf / (root - an Stelle des Benutzerverzeichnisses) setzen. Das hängt natürlich auch von der Konfiguration des jeweiligen FTP-Servers ab.

Beispiel: Um auf die Datei /etc/motd zuzugreifen, verwendet man die URL

ftp://[EMAIL PROTECTED]/%2f/etc/motd

Wie kann man bei FTP das im Klartext vorliegende Passwort in der URL des Browsers verschlüsseln?

Apache benutzt verschiedene Strategien, wenn es um das Einloggen mittels Benutzername und Passwort geht. Fehlen Benutzername und Passwort, sendet Apache an den FTP-Server ein anonymes Login, z.B.,

user: anonymous
password: apache_proxy@

Das ist erfolgreich bei allen populären FTP-Servern, die für anonymen Zugriff konfiguriert sind.

Will man sich mit seinem Benutzernamen einloggen, so kann dieser in die URL beispielsweise eingegeben werden als ftp://[EMAIL PROTECTED]/datei. Wenn der FTP-Server nach einem Passwort fragt, was normalerweise der Fall ist, dann wird Apache einen Antwort-Header generieren [401 Authorization required], der den Browser des Benutzers dazu bringt ein Dialogfenster zu öffnen, in welches Passwort und Benutzername eingegeben werden können. Sind diese Eingaben erfolgt, wird ein neuer Verbindungsaufbau versucht, und im Erfolgsfall wird die Seite angezeigt. Der Vorteil des Dialogfensters für Passwort und Benutzername liegt darin, daß diese kritischen Angaben nicht in der URL des Browsers erscheinen und damit für jemand mit Zugang zum selben Rechner in der Historie des Browsers sichtbar sind.

Wichtige Notiz

Solchermassen übermittelte Daten werden auf ihrer Reise nicht verschlüsselt. Sie werden zwischen Browser und dem Apacheserver als base64-encoded Klartext übertragen, und auf dem Weg vom Apache Proxy zum FTP-Server in reinem Text. Sie sollten daher eigentlich NIE diese Methode benutzen, um mittels HTTP auf persönliche Daten auf einem FTP-Server zuzugreifen. Netzverkehr kann mitbelauscht und Klartext sehr einfach rausgeschnitten werden.

Warum startet Apache etwas langsamer, wenn das Proxymodul benutzt wird?

Wenn man z.B. die ProxyBlock-Direktive einsetzt, werden IP-Adressen nach ihrem Rechnernamen aufgelöst und im Zwischenspeicher abgelegt, um im laufenden Betrieb schnelleren Zugriff zu erhalten. Das kann für das Startverhalten einige Sekunden mehr Zeit beanspruchen, je nachdem wieviele DNS-Anfragen erforderlich sind und wie schnell der DNS-Server antwortet.

Was könnte sonst noch nützlich sein für einen Intranet Proxyserver?

Ein Apache Proxyserver im Intranet einer Firma wird Anfragen zum Internet in der Regel durch eine Firewall senden müssen. Erfolgt jedoch auch ein Zugriff auf Webseiten im Intranet, so sollte die Firewall umgangen werden. Dazu dient die Direktive NoProxy. Damit zählt man diejenigen Rechner auf, auf welche ein direkter Zugriff ohne Umweg über die Firewall erfolgen soll..

Benutzer innerhalb eines Intranet tendieren dazu in der URL des Browsers lokale Adressen abzukürzen, wie z.B. "http://intra/" an Stelle von "http://intra.unsere.firma.de/". Bei einigen kommerziellen Proxyservern kann man dieses Benutzerverhalten durch eine entsprechende Konfiguration abfangen und auf die richtige Adresse weiterleiten. Wenn im Apache Webserver der Proxydienst aktiviert ist, setzt man die ProxyDomain-Direktive für diesen Zweck ein. Dann generiert derApache eine Redirekt-Antwort  und leitet den Client zu der korrekten, voll qualifizierten Adresse. Damit enthält auch die Lesezeichendatei des Benutzers den voll qualifizierten Rechnernamen, wie z.B. "http://intra.unsere.firma.de/"

Wie kann man dem Proxy HTTP/1.0 beibringen und keepalive deaktivieren?

Sollte ein Fall vorliegen, wo ein Applikationsserver keine Verbindungen aufrechterhalten kann, oder  HTTP/1.1 ist nicht sauber implementiert, stehen zwei Umgebungsvariablen zur Verfügung, die ein  HTTP/1.0 mit "no keepalive" senden. Gesetzt wird das mit den SetEnv-Direktiven 'force-proxy-request-1.0' und  'proxy-nokeepalive':

<location /buggyappserver/ >
ProxyPass http://buggyappserver:7001/foo/
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
</location>

top

AllowCONNECT Direktive

Beschreibung: Liste von erlaubten Portnummern für die Proxy  CONNECT-Methode
Syntax: AllowCONNECT port [port] ...
Voreinstellung: AllowCONNECT 443 563
Kontext: server config, virtual host
Status: Erweiterung
Modul: mod_proxy

Die AllowCONNECT-Direktive erlaubt neben den Standard-Portnummern für https und snews weitere Ports für das CONNECT-Protokoll anzugeben, um SSL-Verbindungen über einen Proxy zu tunneln. Man gebraucht die AllowCONNECT-Direktive, wenn die Standardeinstellungen geändert oder erweitert werden sollen.

top

NoProxy Direktive

Beschreibung: Rechner, Domänen, oderr Netzwerke, zu denen direkt konnektiert werden soll
Syntax: NoProxy host [host] ...
Kontext: server config, virtual host
Status: Erweiterung
Modul: mod_proxy

Diese Anweisung ist nur dann nützlich, wenn die ProxyRemote-Direktive verwendet wird. Mittels NoProxy kann man steuern, ob eine Anfrage an den in der ProxyRemote-Anweisung angegebenen Proxy durchgereicht oder die Zieladdresse direkt angesprochen werden soll. Eine solche Liste wird mit Leerzeichen getrennt. 

Beispiel

ProxyRemote * http://firewall.unserefirma.com:81
NoProxy .unserefirma.com 192.168.112.0/21

Als host-Argumente für die NoProxy-Direktive können Sie folgende Werte verwenden:

Domainname, gekennzeichnet durch einen Punkt als erstes Zeichen
Eine Domaine repräsentiert repräsentiert eine Liste von Rechnern, die logischzu der gleichen DNS-Domain oder Zone gehören (i.e., das Suffix der Hostnamen endet in Domain).
Beispiel: .com .apache.org.
 Subnetz,  angegeben als partielle IP-Adresse oder als Adresse mit zugehöriger Netzmaske
Beispiele:
192.168 oder 192.168.0.0

192.168.112.0/2

IP-Adresse
Beispiel: 192.168.123.7
  Hostname
Beispiel: prep.ai.mit.edu www.apache.org.
Notiz: In vielen Situationen ist es effektiver eine IP-Adresse statt eines Hostnamens anzugeben, da eine DNS-Anfrage vermieden werden kann. Namensauflösung in Apache kann unnötig Zeit kosten, wenn die Verbindung zum DNS-Server langsam oder überlastet ist.
Notiz: Für Hostnamen wird Gross-/Kleinschreibung nicht unterschieden; deswegen werden Hosts mit Bezeichnugen wie WWW.MyDomain.com und www.mydomain.com. (abschliessenden Punkt beachten!) als gleich betrachtet.

Siehe auch

top

<Proxy> Direktive

Beschreibung: Kontrollstruktur und Container für Direktiven bezüglich der Ressourcen
Syntax: <Proxy wildcard-url> ...</Proxy>
Kontext: server config, virtual host
Status: Erweiterung
Modul: mod_proxy

Direktiven innerhalb des <Proxy>-Abschnittes gelten nur für den dafür zutreffenden Inhalt. Dabei sind Metazeichen wie in der Shell erlaubt.

Im folgenden Beispiel wird nur Rechnern der Domain yournetwork.example.com Zugriff auf den Proxyserver gewährt:

<Proxy *>
  Order Deny,Allow
  Deny from all
  Allow from yournetwork.example.com
</Proxy>

Das nächste Beispiel zeigt wie man alle Dateien im Verzeichnis foo von example.com mit dem INCLUDES-Filter parst, wenn sie über den Proxy angefordert werden:

<Proxy http://example.com/foo/*>
  SetOutputFilter INCLUDES
</Proxy>

top

ProxyBlock Direktive

Beschreibung: Wörter, Rechner oder Domainnamen für den Proxyzugriff sperren
Syntax: ProxyBlock *|word|host|domain[word|host|domain] ...
Kontext: server config, virtual host
Status: Erweiterung
Modul: mod_proxy

Mit der ProxyBlock-Direktive kann man eine Liste von Wörterns, Rechnern und/oder Domainnamen sperren; Trennzeichen in der Liste ist das Leerzeichen. Kommt im Hostnamen der URL ein Wort aus der Liste vor, wird ebenfalls der Zugriff verweigert. Versucht ein Nutzer auf die IP-Adresse einer gesperrten ("geblockten") Seite zuzugreifen, wird dieser Versuch abgefangen. Das gilt auch für die aus Namensauflösung abgeleiteten IP-Adressen. Beispiel:

ProxyBlock joes-garage.com some-host.co.uk rocky.wotsamattau.edu

'rocky.wotsamattau.edu' wird demnach auch gesperrt, wenn stattdessen in der URL die IP-Adresse eingegeben wird.

Wichtig: auch 'wotsamattau' genügt als Treffer für 'wotsamattau.edu'.

Und keinen Sinn macht die folgende Angabe, die den Zugriff auf alles sperrt:

ProxyBlock *

top

ProxyDomain Direktive

Beschreibung: Anzuhängender Domainname bei unvollständigen Anforderungen
Syntax: ProxyDomain Domain
Kontext: server config, virtual host
Status: Erweiterung
Modul: mod_proxy

Diese Direktive ist nur nützlich für Apache Proxyserver im Intranet. Die ProxyDomain-Direktive gibt den Domainnamen an, der angehängt werden soll, wenn die Anforderung unvollständig ist. Mittels eines HTTP-Redirekt wird ein Verweis auf den kompletten Namen (FQDN) durchgeführt. Die im folgenden Beispiel angegebene ProxyDomain-Direktive wird dafür sorgen, daß eine Eingabe eines Benutzers in der URL, wie z.B. http://intranet, umgewandelt wird in http://intranet.unserefirma.com/

Beispiel

ProxyRemote * http://firewall.unserefirma.com:81
NoProxy .unserefirma.com 192.168.112.0/21
ProxyDomain .unserefirma.com

top

ProxyErrorOverride Direktive

Beschreibung: Ersatz der normalen Fehlermeldungen im Proxy
Syntax: ProxyErrorOverride On|Off
Voreinstellung: ProxyErrorOverride Off
Kontext: server config, virtual host
Status: Erweiterung
Modul: mod_proxy
Kompatibilität Verfügbar in version 2.0 und später

Diese Direktive ist beispielsweise nützlich, wenn man für den Endbenutzer ein vertrautes "look and feel" für Seiten mit Fehlermeldungen herstellen möchte, insbesondre wenn ein Reverse Proxy konfiguriert ist. Mittels SSI kann man zusätzlich den Fehlercode erfassen und entsprechend eine dafür geeignete Seite an den Browser des Benutzers zurückliefern.

top

ProxyIOBufferSize Direktive

Beschreibung: IO Puffergröße für ausgehende HTTP und FTP Verbindungen
Syntax: ProxyIOBufferSize bytes
Kontext: server config, virtual host
Status: Erweiterung
Modul: mod_proxy
top

<ProxyMatch> Direktive

Beschreibung: Kontrollstruktur und Container für Direktiven bezüglich der Ressourcen mit einem Regulären Ausdruck
Syntax: <Proxy regex> ...</Proxy>
Kontext: server config, virtual host
Status: Erweiterung
Modul: mod_proxy

Die <ProxyMatch>-Direktive ist identisch mit der <Proxy>-Direktive; statt einem Metazeichen (*) oder der Kombination von Ausdruck + Metazeichen wird für das Bestimmen der URL ein Regulärer Ausdruck ausgewertet.

top

ProxyMaxForwards Direktive

Beschreibung: Maximale Anzahl der Weiterleitungsproxies
Syntax: ProxyMaxForwards number
Voreinstellung: ProxyMaxForwards 10
Kontext: server config, virtual host
Status: Erweiterung
Modul: mod_proxy
Kompatibilität Verfügbar in Apache 2.0 und später

Die ProxyMaxForwards-Direktive gibt an, durch wieviele Proxies maximal die Anfrage durchgereicht werden darf. In erster Linie dient diese Anweisung dem Vermeiden von Endlosschleifen oder auch DoS(denial of service)-Attacken.

Beispiel

ProxyMaxForwards 6

top

ProxyPass Direktive

Beschreibung: Blendet Webseiten anderer Server in den eigenen Namensraum ein
Syntax: ProxyPass [pfad] !|url
Kontext: server config, virtual host
Status: Erweiterung
Modul: mod_proxy

Beim Einsatz dieser Direktive können Seiten anderer Server in den lokalen Namensraum eingeblendet werden; verwenden Sie zu diesem Zweck auf keinen Fall die Direktive ProxyRequests on. Der lokale Server agiert nicht als Proxy im herkömmlichen Sinne sondern mehr als ein Spiegel des Servers, dessen Seiten eingeblendet werden. Mit pfad geben Sie den Namen des lokalen virtuellen Pfades an und mit url die URL des entfernten Servers. Diese darf keine Zusätze mit CGI-Abfragen enthalten.

Hat beispielsweise der lokale Server die Adresse http://wibble.org/; dann

ProxyPass /mirror/foo/ http://foo.com/

wird eine lokale Anforderung für <http://wibble.org/mirror/foo/bar> intern in eine Proxy-Anforderung für <http://foo.com/bar> umgewandelt.

Die (Verneinungs-) ! Direktive ist nützlich für Situationen, in denen man ein Einblenden für ein bestimmtes Unterverzeichnis ausschliessen will. Das folgende Beispiel

ProxyPass /mirror/foo/i !
ProxyPass /mirror/foo http://foo.com

lenkt alle Anfragen wie gehabt um mit Ausnahme derjenigen, die nach dem foo das Unterverzeichnis i angeben.

Notiz: die Reihenfolge der Direktiven ist wichtig. Ein Ausschluss muß vor die allgemeine ProxyPass- Direktive gesetzt werden

Wird ProxyPass innerhalb von <Location> eingesetzt, muß  das erste Argument, pfad, wegelassen werden, weil Apache das lokale Verzeichnis aus <Location> ausliest.

Haben Sie das Proxy-Modul in den Apache eingebunden, lassen sich über das Proxy-Flag von RewriteRule [P] sehr vielseitige Konfigurationen erstellen, da die Nutzung des Proxy transparent für den Client geschieht.

top

ProxyPassReverse Direktive

Beschreibung: Vom übergeordneten Webserver erzeugte selbst referenzierende HTTP-Redirekts werden auf den eigenen Hostnamen umgeschrieben
Syntax: ProxyPassReverse [pfad] url
Kontext: server config, virtual host
Status: Erweiterung
Modul: mod_proxy

Diese Direktive schreibt den eigenen Hostnamen in die URL in den Feldern Location, Content-Location und URI  des Headers bei HTTP-Redirekts des übergeordneten Webservers. Erst durch diese zu ProxyPass als Ergänzung dienende Funktionalität läßt sich der Apache als Reverse-Proxy einsetzen. Der Begriff bedeutet, daß die Seiten nicht vom eigenen Server stammen, sondern von einem oder mehrern anderen Servern, die quasi hinter dem Reverse-Proxy versteckt werden. Ein typisches Einsatzgebiet sind Datenserver hinter einer Firewall.

Mit pfad geben Sie den Namen des lokalen virtuellen Pfades an und mit url die URL des entfernten Servers - wie bei der ProxyPass-Direktive.

Beispiel:
Angenommen der lokale Server hat die Adresse http://my.antispam.de/; dann wird im folgenden Beispiel

ProxyPass /misc/spamAbuse/ordb http://ordb.org/faq/
ProxyPassReverse 
/misc/spamAbuse/ordb http://ordb.org/faq/

nicht nur die lokale Anforderung für  <http://my.antispam.de/misc/spamAbuse> intern konvertiert in eine Proxy-Anforderung <http://ordb.org/faq> (die Funktionalität von ProxyPass), es werden durch ProxyPassReverse auch Redirekt-Headerzeilen (301, 302, 304) des Servers ordb.org behandelt. Wenn die über den Proxy unter http://ordb.org/faq aufgerufenen Seite einen Link auf http://ordb.org/dictionary enthält, wird Apache diesen Link umwandeln in http://my.antispam.de/dictionary in der HTTP-Redirekt-Antwort an den Client. Das heißt, daß dieses Verzeichnis bei my.antispam.de existieren muß, damit es keine "Not Found"-Meldung (404) gibt.

Bei Benutztung von ProxyPassReverse in Verbindung mit dem RewriteRule-Flag [P]des Moduls mod_rewrite ist keine korrespondierende ProxyPass-Direktive erforderlich.

Wird ProxyPassReverse innerhalb von <Location> eingesetzt, wird das erste Argument, pfad, weggelassen und das lokale Verzeichnis aus <Location> ausgelesen.

top

ProxyPreserveHost Direktive

Beschreibung: Durchreichen des eingehenden Host HTTP-Header
Syntax: ProxyPreserveHost on|off
Voreinstellung: ProxyPreserveHost Off
Kontext: server config, virtual host
Status: Erweiterung
Modul: mod_proxy
Kompatibilität Verfügbar in Apache 2.0.31 und später.

Wenn dieser Schalter gesetzt ist, wird die Zeile mit dem Host-Feld der eingehenden Anforderung zum übergeordneten Server unverändert durchgereicht.

Normalerweise wird man diese Direktive nicht benutzen.

top

ProxyReceiveBufferSize Direktive

Beschreibung: Größe des Netzwerkpuffers für ausgehende HTTP und FTP-Verbindungen
Syntax: ProxyReceiveBufferSize bytes
Kontext: server config, virtual host
Status: Erweiterung
Modul: mod_proxy

Mit der ProxyReceiveBufferSize-Direktive kann die Netzwerkpuffergröße explizit für ausgehende HTTP und FTP-Verbindungen angegeben werden. Als Größe wird der Wert in Bytes angegeben, entweder größer als 512, oder er steht auf 0, um die Systemvoreinstellungen zu übernehmen. 

Beispiel

ProxyReceiveBufferSize 2048

top

ProxyRemote Direktive

Beschreibung: Einen anderen Cache vorschalten
Syntax: ProxyRemote match remote-server
Kontext: server config, virtual host
Status: Erweiterung
Modul: mod_proxy

Mit dieser Direktive gibt man einen übergeordneten Cache an. Das Argument match ist entweder der Name eines vom vorgeschalteten Cache unterstützten URL-Schemas, oder eine partielle URL, bzw. ein '*' steht für alle Protokolle, mit denen Anforderungen an den anderen Cache weitergeleitet werden. Syntax:

  remote-server = protocol://hostname[:port]

protocol ist das Protokoll, mittels dessen mit dem vorgeschalteten Cache kommuniziert werden soll; nur "http" wird vom Proxy-Modul unterstützt.

Beispiel:

ProxyRemote http://goodguys.com/ http://mirrorguys.com:8000
ProxyRemote * http://cleversite.com
ProxyRemote ftp http://ftpproxy.mydomain.com:8080

Hierbei wird der Proxy alle FTP-Anforderungen an den  ftpproxy.mydomain als HTTP-Proxy-Request weiterleiten. Ist der Host nicht erreichbar, wickelt der Apache die Anfrage eigenständig ab.

Mit dieser Direktive kann man auch die Konfiguration eines Reverse Proxy aufbauen. Beispielsweise kann ein hinter einer Firewall agierender Applikationsserver in den Namensraum eines virtuellen Hosts eingebettet werden - selbst dann, wenn ein anderer Weiterleitungs-Proxy diesen verbirgt.

top

ProxyRemoteMatch Direktive

Beschreibung: Einen anderen Cache mittels eines Regulären Ausdrucks vorschalten
Syntax: ProxyRemote regex remote-server
Kontext: server config, virtual host
Status: Erweiterung
Modul: mod_proxy

 ProxyRemoteMatch ist identisch mit der ProxyRemote-Direktive, wobei das erste Argument einen Regulären Ausdruck enthält, mit dem der übergeordnete Cache erreicht wird. Dadurch kann eine Lastverteilung angestrebt werden.

top

ProxyRequests Direktive

Beschreibung: Schalter für das Aktivieren des Proxy-Moduls
Syntax: ProxyRequests on|off
Voreinstellung: ProxyRequests Off
Kontext: server config, virtual host
Status: Erweiterung
Modul: mod_proxy

Damit wird das Proxy-Modul des Apache aktiviert, um als Forward Proxy tätig zu werden. Bleibt der Schalter aus, ist keinesfalls die Möglichkeit zur Konfiguration eines Reverse Proxy mit der ProxyPass-Direktive genommen; hier bleibt dieser Schalter in der Regel aus.

Warnung: Schalten Sie ProxyRequests erst dann ein, wenn Sie Ihren Server sicher gemacht haben. Öffentlich zugängliche Proxyserver sind gefährlich für das dahinter liegende Netzwerk und für das Internet im allgemeinen.

top

ProxyTimeout Direktive

Beschreibung: Netzwerk Timeout für Proxy-Anfragen
Syntax: ProxyTimeout seconds
Voreinstellung: ProxyTimeout 300
Kontext: server config, virtual host
Status: Erweiterung
Modul: mod_proxy
Kompatibilität Verfügbar in Apache 2.0.31 und später

Mit dieser Direktive kann die Voreinstellung von 300 Sekunden reduziert oder erhöht werden. Das ist insbesondre dann nützlich, wenn ein Applikationsserver gelegentlich "hängt" und man möchte den Client lieber rechtzeitig mit einer Timeout-Meldung versorgen als ihn in dieser Verbindung auf unbestimmte Zeit hängen zu lassen.

top

ProxyVia Direktive

Beschreibung: Generierung eines Via-HTTP-Header-Feldes
Syntax: ProxyVia on|off|full|block
Voreinstellung: ProxyVia off
Kontext: server config, virtual host
Status: Erweiterung
Modul: mod_proxy

Ein bereits in einer Anforderung vorhandener Via: HTTP-Header wird vom Proxy weitergeleitet, jedoch wird ein eigener Eintrag erst generiert, wenn der Schalter nicht aus ist. Damit kann man den Weg einer Anfrage entlang einer Kette von Proxyservern verfolgen (siehe auch RFC2068, HTTP/1.1).

  • Ist der Schalter auf on, wird jeder Anfrage und Antwort eine Zeile mit dem Via: Header hinzugefügt, die den eigenen Hostnamen enthält.
  • Ist der Schalter auf  full, dann wird im Via: Header zusätzlich zum Hostnamen die Serverversion im Via: -Kommentarfeld angezeigt.
  • Ist der Schalter auf  block, dann werden alle bereits vorhandenen Via: Header in der Anfrage entfernt und kein neuer generiert.




Attachment: 0x0A98C210.asc
Description: application/pgp-keys

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to