| Was bringt der Proxy-Server? |
| Heinrich-Heine-Universität Düsseldorf | Universitätsrechenzentrum |
Ursprünglich geschrieben für UniMix 18/1 (Wintersemester 1996/97); Inhalt:
| . | Der Betrieb des Proxy- (oder genauer: Proxy-Caching-) Servers für World Wide Web-Browser gehört - gemessen an den Server-Ressourcen bzgl. Rechenzeit, Plattenbedarf und Netzbandbreite - zu den wichtigsten Internet-Dienstleistungen im Angebot des Universitätsrechenzentrums. Es lohnt deshalb, sich an dieser Stelle einmal genauer mit diesem Thema auseinanderzusetzen. |
|---|---|
|
Versuch der Definition: Was ist ein Proxy-Server?
|
Wenn Sie mit einem WWW-Browser wie Netscape eine Seite laden,
die auf einem Server in Amerika liegt, bedeutet dies normalerweise,
daß das Netscape-Programm eine TCP-Verbindung über
das Internet zu dem Server in Amerika aufbaut und von dort die
Daten empfängt. Wird dieser Browser für die Verwendung
eines Proxy-Servers konfiguriert, baut das Netscape-Programm eine
Verbindung zum Proxy-Server auf, sagt diesem die Adresse (URL)
der gewünschten Seite in Amerika und der Proxy-Server holt
die Daten über das Internet vom Original-Server und reicht
sie an den Browser - den Client - durch. Ein Proxy-Server erledigt
also Übertragungen aus dem Internet (exakter gesagt: über
spezielle Internet-Anwendungsprotokolle wie im wesentlichen HTTP
und ggf. Gopher und FTP, denen die Dokumentadresse beginnend mit
http:, gopher: bzw. ftp: entsprechen) auf Anforderung von Clients,
die in der Regel im gleichen lokalen Netz liegen.
Ist ein Proxy-Server mit einem Cache konfiguriert - das ist dann der Proxy-Caching-Server -. speichert er die empfangenen Dokumente zusätzlich in einem lokalen Plattenbereich und kann die nächste Anforderung eines lokal schon gespeicherten Dokumentes befriedigen, ohne die Daten nochmals über das konzeptionell und oft auch real langsamere Internet empfangen zu müssen. Um nicht veraltete lokale Kopien aus dem Cache an Clients zu geben, wird er u.U. vorher bei dem Original-Server anfragen, ob sich das Dokument gegenüber dem letzten nachgehaltenen Modifizierungsdatum geändert hat; Verfahren für eine solche Nachfrage kennt allerdings nur das Hypertext Transport Protocol (HTTP). Diese sichert Aktualität bei gleichzeitiger Reduzierung der Übertragungszeiten. |
|
Gründe für die Verwendung eines Proxy-Servers
|
Aus dem letzten Abschnitt gehen die beiden möglichen Gründe für die Verwendung eines Proxy-Servers schon hervor:
|
|
Geschichte des Proxy-Servers im URZ - die Server-Software
|
Schon bei der ersten Installation eines WWW-Servers im Universitätsrechenzentrum im August 1994 auf dem Rechner hermes gehörte ein Proxy-Caching-Server mit dazu. Der reservierte Plattenplatz für den Cache stieg von 200 MB am Anfang über 1 GB beim Umzug auf den jetzigen Server auf Sun-Sparc-Basis (selene) auf jetzt 1,8 GB. Die verwendete Software war bis vor kurzem das gleiche Programm, das auch als zentraler WWW-Server für die Universität arbeitet, der CERN-httpd Version 3.0. Im März 1996 wurde als Alternative zu dem von der Performance her als relativ schwach geltenden CERN-Proxy-Server der Netscape-Proxy-Server installiert -ursprünglich im Rahmen eines Test Drive-Programms der Firma Netscape, später dann als lizensiertes Programm. Nach längerem Parallelbetrieb zweier Proxy-Server auf einer Maschine wurde der Betrieb des alten im Oktober eingestellt und gleichzeitig dem neuen der größere Plattenplatz spendiert. Für technisch Interessierte: Vor allem zwei geänderte Konzepte beim Netscape-Proxy-Server gegenüber der CERN-Urmutter der HTTP-Proxies sorgen für schnellere Reaktionszeiten. Das "klassische" Verfahren bei Internet-Server-Programmen unter Unix ist, daß für jeden hereinkommenden Verbindungsaufbauwunsch eine Prozeßkopie erzeugt wird, um diese Verbindung (und den Client dahinter) zu bedienen. Der dafür verwendete Unix-Systemaufruf "fork" erzeugt jedesmal einen System-Overhead, den neuere Software-Entwicklungen zu verringern versuchen. Beim Netscape-Proxy-Server wird dies dadurch erreicht, daß eine vorkonfigurierte Anzahl von Prozessen von vorneherein kreiert wird, an die hereinkommende Verbindungen verteilt werden - es werden niemals zusätzliche Prozesse gestartet. Dies kann u.U. die Konsequenz haben, daß alle Prozesse (zur Zeit 75 bei uns) besetzt sind und Clients warten müssen; Sie erkennen diese Situation im Netscape-Browser daran, daß in der Status-Zeile die Meldung Contacted www.uni-duesseldorf.de:8080; waiting for reply stehen bleibt; erscheint in dieser Meldung der Name des Original-Servers, so besteht die Verbindung zum Proxy-Server bereits. Wenn Sie öfter die "Besetzt-Meldung" beobachten, können Sie mir (cappel@rz.uni-duesseldorf.de) dies mit der Uhrzeit melden; dann muß die Zahl der Prozesse nochmals erhöht werden. Wir werden dies spätestens machen, wenn die leistungsfähigere Nachfolge-Hardware in Betrieb genommen wurde. Der CERN-Proxy-Server hat im Cache-Dateisystem die Struktur der URLs gecachter Dokumente im Unix-Pfad nachvollzogen; das kann bedeuten, daß zum Abspeichern eines Dokumentes im Cache mehrere Verzeichnisse angelegt werden müssen. Der Netscape-Proxy-Server verwendet eine feste, einmal eingerichtete Verzeichnisstruktur; die Zuordnung URL zu einem Verzeichnis plus Dateinamen erfolgt über einen Hash-Code und eine Datenbank. |
|
Konfigurierung von WWW-Browsern für die Nutzung des Proxy-Servers
|
Um den Proxy-Server in der richtigen Weise zu verwenden, müssen Sie Ihrem Browser erstens sagen, daß er für die Protokolle HTTP und evtl. Gopher und FTP den Proxy-Server www.uni-duesseldorf.de unter der Portnummer 8080 benutzen soll und zweitens für alles unterhalb der Domain uni-duesseldorf.de keinen Proxy-Server. Der zweite Punkt erspart Last auf dem Proxy-Server; es könnte auch eher länger als kürzer dauern, ein lokales Dokument über den Proxy-Server zu holen, da diese nicht gecachet werden, also in jedem Fall zwei Verbindungen (Client -> Proxy, Proxy -> Original-Server) erforderlich sind. Wie dieses "Sagen" bei diversen gängigen Browsern geschieht, habe ich unter http://www.uni-duesseldorf.de/WWW/Proxy/ mit vielen Bildern niedergelegt. Für den Netscape-Navigator ab Version 2.0 gibt es eine neue Alternative unter Options/Network Preferences.../Proxies, die "Automatic Proxy Configuration". Eine Datei für diesen Zweck finden Sie unter der "Configuration Location" http://www.uni-duesseldorf.de/WWW/proxy.pac Deren Verwendung hat den zusätzlichen Vorteil, daß bei nicht Erreichbarkeit des Proxy-Servers der direkte Zugriff als Alternative programmiert ist (außer für das öffentlciche Netz im URZ, wo diese Alternative nicht existiert) - ohne eigener Änderung der Konfiguration. |
|
Proxy-Server und Datenschutz
|
Wie die meisten Internet-Server führt auch der Proxy-Server
ein Zugriffs-und Fehler-Log. Beim Netscape-Proxy-Server enthalten
die aufgezeichneten Rohdaten IP-Adresse des Client, Datum und
Uhrzeit, URL des gewünschten Dokumentes, Status-Code und
diverse Größenangaben. Ein solches Log dient zum einen
der Fehlerverfolgung auf Nachfrage, zum anderen einer summarischen
Auswertung des Durchsatzes und des Gewinns durch den Cache. Da
häufig der IP-Adresse eines PC eine Person zugeordnet werden
kann, handelt es sich bei den Log-Daten um Personen-beziehbare
Informationen, u.U. mit einiger Brisanz.
Zu deren Verwendung können wir Ihnen folgendes mitteilen:
Andererseits dient gegenüber den externen Informationsanbietern die Zwischenschaltung eines Proxy-Servers gerade der Anonymisierung. Denn in deren Log-Files ist dann nur die IP-Adresse oder der Hostname des Proxy-Servers sichtbar. Ein weiteres, jetzt aktiviertes Feature des Netscape-Proxy-Servers unterstützt diese Anonymisierung weiter: Manche WWW-Browser (nicht der Netscape-Navigator) geben in der HTTP-Request-Headerzeile "From:" die - für einen anderen Zweck - im Browser konfigurierte E-Mail-Adresse mit. Es gibt Informationsanbieter, die solche Informationen von Leuten, die nur mal auf einer ihrer Seiten hereingeschaut haben, gezielt zur Versendung von Werbung über E-Mail ausnutzen. Diese Information - ebenso die User-Agent-Headerzeile, in der die verwendete Browser-Software steht - wird vom Netscape-Proxy-Server herausgefiltert aus den Informationen, die an einen entfernten Server übertragen werden. |