Hilfe zum IBM HTTP Server: Proxy-Anweisungen

Proxy-Anweisungen

 

ProxyRequests

Mit dieser Anweisung kann der Apache-Server als Proxy-Server aktiviert oder inaktiviert werden. Wenn Sie die Anweisung "ProxyRequests" auf "Off" setzen, kann die Anweisung ProxyPass trotzdem verwendet werden.

ProxyRemote

Mit dieser Anweisung können ferne Proxy-Server für den Proxy-Server definiert werden. Für <Übereinstimmung> kann entweder der Name eines URL-Schemas, das vom fernen Server unterstützt wird, oder ein Teil-URL, für den der ferne Server verwendet werden soll, oder ein Stern (*) eingegeben werden, wenn der Server bei allen Anforderungen angesprochen werden soll. <Ferner Server> steht für den Teil-URL des fernen Servers. Syntax:
  <ferner Server> = <Protokoll>://<Host-Name>[:Port]
<Protokoll> steht für das Protokoll, das für die Kommunikation mit dem fernen Server verwendet werden soll. Von diesem Modul wird nur "http" unterstützt.

Beispiel:

  ProxyRemote http://goodguys.com/ http://mirrorguys.com:8000
  ProxyRemote * http://cleversite.com
  ProxyRemote ftp http://ftpproxy.meineDomäne.com:8080
Im letzten Beispiel leitet der Proxy-Server alle FTP-Anforderungen, verkapselt als weitere HTTP-Proxy-Anforderung, an einen andern Proxy-Server weiter, der diese verarbeiten kann.

ProxyPass

Mit dieser Anweisung können ferne Server dem Bereich des lokalen Servers zugeordnet werden. Der lokale Server agiert dann nicht als Proxy-Server im eigentlichen Sinn, sondern als Spiegelbild des fernen Servers. <Pfad> steht für den Namen eines lokalen virtuellen Pfades, <URL> für einen Teil-URL des fernen Servers.

Beispiel: Der lokale Server hat die Adresse http://wibble.org/. Mit der Anweisung

   ProxyPass         /mirror/foo/ http://foo.com/
wird eine lokale Anforderung an <http://wibble.org/mirror/foo/bar> intern in eine Proxy-Anforderung an <http://foo.com/bar> konvertiert.

ProxyPassReverse

Mit dieser Anweisung kann Apache den URL im Header Location von HTTP-Umleitungsantworten ändern. Dies ist ist insbesondere dann wichtig, wenn der Apache-Server als Umkehr-Proxy-Server eingesetzt wird, um das Umgehen des Umkehr-Proxy-Servers zu vermeiden, wenn HTTP-Umleitungen auf den Backend-Servern vorkommen, die hinter dem Umkehr-Proxy-Server bleiben.

<Pfad> steht für einen lokalen virtuellen Pfad.
<URL> steht für den Teil-URL des fernen Servers. Die Angaben entsprechen denen in der Anweisung ProxyPass.

Beispiel:
Beispiel: Der lokale Server hat die Adresse http://wibble.org/. Mit der Anweisung

   ProxyPass         /mirror/foo/ http://foo.com/
   ProxyPassReverse  /mirror/foo/ http://foo.com/
wird nicht nur eine lokale Anforderung an <http://wibble.org/mirror/foo/bar> intern in eine Proxy-Anforderung an <http://foo.com/bar> konvertiert (die Funktionalität, die ProxyPass hier bereitstellt). Darüber hinaus werden auch die Umleitungen bearbeitet, die der Server foo.com sendet. Wenn die Anforderung http://foo.com/bar von diesem Server an http://foo.com/quux umgeleitet wird, ändert der Apache_-Server diese Anforderung in http://wibble.org/mirror/foo/quux, bevor er die HTTP-Umleitungsantwort an den Client weiterleitet.

Die Anweisung ProxyPassReverse kann auch zusammen mit der Proxy-Durchgriffsfunktion RewriteRule ... [P]") von mod_rewrite verwendet werden, weil sie nicht von der entsprechenden Anweisung ProxyPass abhängig ist.

AllowCONNECT

Mit der Anweisung AllowCONNECT können Sie die Nummern der Ports angeben, zu denen der Proxy-Server mit der Methode CONNECT eine Verbindung herstellen kann. Die modernen Browser verwenden diese Methode, wenn eine https-Verbindung angefordert wird und das Proxy-Tunneling über http aktiviert ist.
Standardmäßig sind nur der Standard-https-Port (443) und der Standard-snews-Port (563) aktiviert. Mit der Anweisung AllowCONNECT können Sie diese Standardeinstellung außer Kraft setzen und festlegen, dass nur Verbindungen zu den angegebenen Ports hergestellt werden dürfen.

ProxyBlock

Mit der Anweisung ProxyBlock kann eine Liste von Wörtern, Hosts und/oder Domänen angegeben werden. Die einzelnen Einträge müssen durch ein Leerzeichen voneinander getrennt werden. HTTP-, HTTPS - und FTP-Dokumentanforderungen an Sites, deren Namen übereinstimmende Wörter, Hosts oder Domänen enthalten, werden vom Proxy-Server blockiert. Außerdem versucht das Proxy-Modul, beim Starten die IP-Adressen der in der Liste aufgeführten Einträge zu ermitteln, bei denen es sich um Host-Namen handelt, und speichert diese für Übereinstimmungstests. Beispiel:
  ProxyBlock joes-garage.com some-host.co.uk rocky.wotsamattau.edu
'rocky.wotsamattau.edu' würde auch übereinstimmen, wenn der Verweis über die IP-Adresse erfolgt.

Die Angabe 'wotsamattau' allein würde ausreichen, um 'wotsamattau.edu' zu entsprechen.

Mit der Anweisung

ProxyBlock *
werden die Verbindungen zu allen Sites blockiert.

ProxyReceiveBufferSize

Mit der Anweisung ProxyReceiveBufferSize kann eine explizite Größe für den Netzpuffer für abgehende HTTP- und FTP-Verbindungen festgelegt werden, um den Durchsatz zu erhöhen. Der Wert muss größer als 512 sein. Mit der Angabe 0 kann angegeben werden, dass die Standardpuffergröße des Systems verwendet werden soll.

Beispiel:

  ProxyReceiveBufferSize 2048

NoProxy

Diese Anweisung ist nur sinnvoll bei Apache-Proxy-Servern in Intranets. Mit der Anweisung NoProxy kann eine Liste von Teilnetzen, IP-Adressen, Hosts und/oder Domänen angegeben werden. Die einzelnen Einträge müssen durch ein Leerzeichen voneinander getrennt werden. Eine Anforderung an einen Host, dessen Name mit einem dieser Einträge übereinstimmt, wird immer direkt ohne Weiterleitung an die mit ProxyRemote konfigurierten Proxy-Server bedient.

Beispiel:

  ProxyRemote  *  http://firewall.meineFirma.com:81
  NoProxy         .meineFirma.com 192.168.112.0/21
Die Argumente für die Anweisung NoProxy sind in der folgenden Liste aufgeführt:
Domäne
Eine Domäne ist ein teilweise qualifizierter DNS-Domänenname, dem ein Punkt voransteht. Die Domäne steht für eine Reihe von Hosts, die logisch zu derselben DNS-Domäne oder -Zone gehören (d.h., die Suffixe der Host-Namen enden alle auf Domäne).
Beispiele: .com .apache.org.
Domänen und Host-Namen unterscheiden sich (sowohl syntaktisch als auch semantisch; ein DNS-Domänenname kann auch einen DNS-A-Eintrag besitzen!) darin, dass vor einer Domäne immer ein Punkt steht.
Anmerkung: Beim Vergleich von Domänennamen wird nicht zwischen Groß- und Kleinschreibung unterschieden. Außerdem sind Domänen immer in der Root der DNS-Struktur verankert. Deshalb werden die beispielsweise die beiden Domänen .MeineDomäne.com und .meinedomäne.com. (beachten Sie den abschließenden Punkt) als identisch betrachtet. Da ein Vergleich von Domänen kein DNS-Lookup einschließt, ist dieser Vergleich viel effizienter als der Vergleich von Teilnetzen.
Teilnetz
Ein Teilnetz ist eine teilweise qualifizierte Internet-Adresse (vier Zahlengruppen, die jeweils durch einen Punkt getrennt sind) in numerischer Form, die optional von einem Schrägstrich und der Netzmaske gefolgt wird, angegeben als Anzahl der signifikanten Bit im Teilnetz. Das Teilnetz repräsentiert eine Reihe von Hosts, die über eine allgemeine Netzschnittstelle angesprochen werden können. Wenn keine explizite Netzmaske angegeben ist, wird davon ausgegangen, das die ausgelassenen (bzw. Nullwerte) abschließenden Ziffern die Maske angeben. (In diesem Fall kann die Netzmaske nur ein Vielfaches von 8 Bit sein.)
Beispiele:
192.168 oder 192.168.0.0
Das Teilnetz 192.168.0.0 mit einer impliziten Netzmaske von 16 gültigen Bit (wird manchmal auch im Netzmaskenformat 255.255.0.0 angegeben).
192.168.112.0/21
Das Teilnetz 192.168.112.0/21 mit einer Netzmaske von 21 gültigen Bit (wird auch im Format 255.255.248.0 angegeben).
Degenerativ ausgedrückt entspricht ein Teilnetz mit 32 gültigen Bit einer IP-Adresse und ein Teilnetz mit keinem gültigen Bit (z. B. , 0.0.0.0/0) der Konstante _Default_, die auf alle IP-Adressen zutrifft.
IP-Adresse
IP-Adresse steht für eine vollständig qualifizierte Internet-Adresse, angegeben in numerischer Form (vier Zifferngruppen, jeweils durch einen Punkt getrennt). Normalerweise gibt diese Adresse einen Host an, allerdings muss dieser Adresse nicht zwingend ein DNS-Domänenname zugeordnet sein.
Beispiel: 192.168.123.7
Anmerkung: Eine IP-Adresse muss nicht unbedingt vom DNS-System aufgelöst werden, auch wenn Sie so eine bessere Leistung des Apache-Servers erzielen können.

Siehe auch: DNS-Themen

Host-Name
Host-Name steht für den vollständig qualifizierten DNS-Domänennamen, der über den Service für DNS-Domänennamen in eine oder mehrere IP-Adressen aufgelöst werden kann. Dieser Name steht für einen logischen Host (im Gegensatz zu Domänen, siehe oben) und in mindestens eine IP-Adresse (oder oft in eine Liste mit Hosts mit unterschiedlichen IP-Adressen) aufgelöst werden.
Beispiele: prep.ai.mit.edu www.apache.org.
Anmerkung: In vielen Fällen ist es empfehlenswerter, eine IP-Adresse anstelle eines Host-Namens anzugeben, weil dadurch das DNS-Lookup vermieden werden kann. Die Namensauflösung auf dem Apache-Server kann eine erheblich lange Zeitspanne beanspruchen, wenn die Verbindung zum Namens-Server über eine langsame PPP-Verbindung hergestellt wird.
Anmerkung: Beim Vergleich von Host-Namen wird nicht zwischen Groß- und Kleinschreibung unterschieden. Außerdem sind Host-Namen immer in der Root der DNS-Struktur verankert. Deshalb werden beispielsweise die beiden Hosts WWW.MeineDomäne.com und www.meinedomäne.com. (beachten Sie den abschließenden Punkt) als identisch betrachtet.

Siehe auch: DNS-Themen

ProxyDomain

Diese Anweisung ist nur sinnvoll bei Apache-Proxy-Servern in Intranets. Mit der Anweisung ProxyDomain geben Sie die Standarddomäne an, zu der der Proxy-Server gehört. Wenn eine Anforderung an einen Host ohne Domänennamen empfangen wird, wird eine Umleitungsantwort an denselben Host mit der konfigurierten Domäne generiert.

Beispiel:

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

ProxyVia

Mit dieser Anweisung wird die Verwendung des HTTP-Header Über: (Via) durch den Proxy-Server gesteuert. Damit soll der Fluss der Proxy-Anforderungen in der Kette der Proxy-Server überwacht werden. Eine Beschreibung der Zeilen im Header Über: finden Sie in RFC2068 (HTTP/1.1).

CacheForceCompletion

Beim Abbruch einer HTTP-Übertragung, die im Cache gespeichert wird, führt das Proxy-Modul die Übertragung der Daten in den Cache zu Ende, wenn bereits mehr als der angegebene Prozentsatz übertragen wurde.

Es handelt sich hier um einen Prozentsatz. Der Wert muss eine Zahl zwischen 1 und 100 oder die Standardeinstellung 0 sein. Bei Angabe von 100 werden Dokumente nur in den Cache gestellt, wenn die Übertragung durchgeführt werden konnte. Eine Zahl zwischen 60 und 90 wird empfohlen.

CacheRoot

Mit dieser Anweisung wird der Name des Verzeichnisses festgelegt, in dem die Cache-Dateien abgelegt werden sollen. Der IBM HTTP Server muss in dieses Verzeichnis schreiben können. (Weitere Informationen finden Sie in der Beschreibung der Anweisung User.)
Wenn Sie die Anweisung CacheRoot definieren, aktivieren Sie damit die Cache-Funktion des Proxy-Servers. Ist CacheRoot nicht definiert, ist die Proxy-Funktionalität nur verfügbar, wenn die Anweisung ProxyRequests auf On eingestellt ist. Caching ist in diesem Fall jedoch nicht verfügbar.

CacheSize

Mit dieser Anweisung definieren Sie den gewünschten Speicherplatz für den Cache in KB (1024-Byte-Einheiten). Die Verwendungsrate kann diese Einstellung zwar übersteigen, aber die Bereinigungsfunktion wird die Dateien löschen, bis die Verwendungsrate diese Einstellung erreicht bzw. darunterliegt.

Abhängig vom erwarteten Datenverkehrsvolumen für den Proxy-Server und der Angabe für CacheGcInterval, müssen Sie eine Wert wählen, der mindestens 20 bis 40 % niedriger als der verfügbare Speicherplatz ist.

CacheGcInterval

Mit dieser Anweisung können Sie festlegen, dass der Cache in dem mit <Zeit> angegebenen Stundenintervall geprüft wird und Dateien gelöscht werden, wenn die Speicherplatzauslastung die mit CacheSize festgelegte Größe überschreitet. Sie können für <Zeit> einen Gleitkommawert angeben, also beispielweise CacheGcInterval 1.5. Bei dieser Einstellung wird der Cache alle 90 Minuten geprüft. (Wenn Sie diesen Wert nicht definieren, wird keine Speicherbereinigung durchgeführt, und der Cache wächst ohne Begrenzung weiter.) Außerdem sollten Sie folgendes beachten: Je größer das CacheGcInterval ist, desto mehr Speicherplatz zusätzlich zur mit CacheSize konfigurierten Cache-Größe wird für die Zwischenspeicherung zwischen den einzelnen Speicherbereinigungen benötigt.

CacheMaxExpire

HTTP-Dokumente bleiben maximal so viele Stunden ohne Überprüfung des Ursprungs-Servers im Cache, wie Sie es mit der Variable <Zeit> festlegen. Demzufolge können Dokumente maximal <XXX> Stunden nicht auf dem neuesten Stand sein. Diese Einschränkung gilt auch dann, wenn ein Verfallsdatum im Dokument steht.

CacheLastModifiedFactor

Wenn der Ursprungs-HTTP-Server kein Verfallsdatum für das Dokument bereitstellt, können Sie ein solches mit der folgenden Formel schätzen:

  Verfallszeit = Zeit seit der letzten Änderung * <Faktor>
Beispiel: Wenn das Dokument vor 10 Stunden zum letzten Mal geändert wurde und der <Faktor> auf 0,1 eingestellt ist, wird die Verfallszeit mit 10*0.1 = 1 Stunde definiert.

Wenn die Verfallszeit länger ist als der für CacheMaxExpire festgelegte Wert, hat letzterer Priorität.

CacheDirLevels

Mit der Anweisung CacheDirLevels legen Sie die Anzahl der Unterverzeichnisebenen im Cache fest. Die zwischengespeicherten Daten werden dann in dieser Anzahl von Verzeichnisebenen unterhalb der Cache-Root gespeichert.

CacheDirLength

Mit der Anweisung CacheDirLength können Sie festlegen, aus wie vielen Zeichen die Namen der Unterverzeichnisse im Cache des Proxy-Servers bestehen dürfen.

CacheDefaultExpire

Wenn das Dokument über ein Protokoll abgerufen wird, das keine Verfallszeiten unterstützt, können Sie mit der Option <Zeit> die Stunden für die Verfallszeit festlegen. Sie Einstellung der Anweisung CacheMaxExpire kann diese Einstellung nicht außer Kraft setzen.

NoCache

Mit der Anweisung NoCache kann eine Liste von Wörtern, Hosts und/oder Domänen angegeben werden. Die einzelnen Einträge müssen durch ein Leerzeichen voneinander getrennt werden. HTTP- und FTP-Dokumentanforderungen ohne Kennwortangabe an Hosts oder Domänen, die mit den Wörtern, Hosts oder Domänen übereinstimmen, werden vom Proxy-Server nicht im Cache gespeichert. Außerdem versucht das Proxy-Modul, während beim Starten die IP-Adressen der in der Liste aufgeführten Einträge zu ermitteln, bei denen es sich um Host-Namen handelt, und speichert diese für Übereinstimmungstests. Beispiel:

  NoCache joes-garage.com some-host.co.uk bullwinkle.wotsamattau.edu
'bullwinkle.wotsamattau.edu' würde auch übereinstimmen, wenn der Verweis über die IP-Adresse erfolgt.

Die Angabe 'wotsamattau' allein würde ausreichen, um 'wotsamattau.edu' zu entsprechen.

Mit der Anweisung

NoCache *
können Sie das gesamte Caching inaktivieren.