WWWOFFLE Proxy

Falls Sie bisher Version 1.x oder 2.x benutzt haben, lesen Sie bitte die Datei CHANGES.CONF.de, dort wird erklärt, welche Abschnitte wie an die neue Version angepaßt werden müssen; und welche neuen Optionen es gibt.

Die Datei wwwoffle.conf enthält alle Einstellungen für den Betrieb des Proxy Servers. Diese Datei ist in Abschnitte (Sektionen, Teile) geteilt, die jeweils die unten angegebenen Parameter enthalten.

Kommentare werden durch ein # eingeleitet, alles was nach diesem Kommentarzeichen in einer Zeile steht, wird ignoriert. Ein Abschnitt wird durch dessen Namen, gefolgt durch eine öffnende geschweifte Klammer ({) eingeleitet, beide in einer eigenen Zeile. Dann folgen die Parameter für diesen Abschnitt. Abgeschlossen wird der Abschnitt durch eine schließende geschweifte Klammer (}), wiederum in einer eigenen Zeile. Zum Beispiel:

StartUp
{
    Option = Wert
    # Dies ist ein Kommentar
    # Option = Wert            Dies ist auch einer!
    Option = Wert
    ...
}
Um Mißverständnissen vorzubeugen: Der Begriff INTEGER gibt eine ganze, i.d.R. natürliche Zahl an.

Außerdem ist die erste Spalte in einer hier angezeigten Tabelle, die ein Schlüsselwort der Konfigurationsdatei angibt, immer in einer Zeile zu schreiben, auch wenn der Browser das umbricht.

 

Abschnitt 'StartUp'

Dieser Abschnitt bestimmt das Verhalten beim Start des Programms, er wird beim erneuten Einlesen der Konfigurationsdatei ignoriert.

http-port = PORT Der Port, welchen der Proxy für Daten benutzen soll.
wwwoffle-port = PORT Der Port, welchen der Proxy für Kontrollverbindungen nutzen soll.
spool-dir = VERZEICHNIS Das Verzeichnis für den Cache (normalerweise /var/spool/wwwoffle).
run-uid = BENUTZER / UID Als welcher Benutzer (-name, -ID) soll der Proxy laufen? (Standard: keiner, d.h. WWWOFFLE ändert dies nicht selbst).
run-gid = GRUPPE / GID In welcher Benutzergruppe soll WWWOFFLE laufen? (Standard siehe run-uid).
use-syslog = yes|no Soll die syslog Funktion für Meldungen benutzt werden? (Standard: ja).
password = IRGENDWAS Das Kennwort für die Authentizierung in der Web-Oberfläche.
max-servers = INTEGER Die maximale Anzahl von Serverprozessen, die gleichzeitig laufen. (Standard: 8).
max-fetch-servers = INTEGER Die maximale Anzahl von Serverprozessen, die gleichzeitig Bestellungen herunterladen. (Standard: 8)

Wichtig:
  • Damit die Kennwort-Authentikation funktioniert, muß die Konfigurationsdatei von WWWOFFLE natürlich so angelegt werden, daß nur Benutzer sie lesen können, die auch auf diese Funktionen zugreifen dürfen.
  • Die run-uid und run-gid Optionen sind unter Windows unwirksam. Um sie überhaupt benutzen zu können, muß der Server als root gestartet werden - sonst kann er seine eigenen Rechte nicht ändern.
  • Die Option max-fetch-servers sollte unbedingt kleiner sein als max-servers -- sonst können Sie WWWOFFLE nicht benutzen, während er Bestellungen herunterlädt!

 

Abschnitt 'Options'

Dieser Abschnitt deckt allgemeine Einstellungen ab.

log-level = ANGABE Nachrichten, die mindestens die angegebene Priorität haben, werden protokolliert. Mögliche Prioritätsangaben sind: debug, info, important, warning, fatal
index-latest-days = ALTER Die Anzahl Tage, die in den 'latest' Indizes stehen (Standard: 7, Angaben in Tagen).
request-changed = ZEIT Wenn im online Modus, wird eine Datei/Seite nur erneut heruntergeladen, wenn sie älter als die hier angegebene Zeit ist (Standard: 600, das entspricht 10 Minuten).
request-changed-once = yes | no Wenn im online Modus wird eine Datei/Seite nur erneut heruntergeladen, wenn sie in dieser Sitzung nicht schon einmal erneuert/geholt wurde (Standard: yes).
pragma-no-cache = yes | no Verhalten bei einer Seite, die mit dem Attribut 'pragma: no-cache' versehen wurde (Standard: yes, d.h. die Seite wird erneut heruntergeladen).
confirm-requests = yes | no Bestätigung bei einer Bestellung im offline Modus fordern, anstatt die Seite sofort zu bestellen (Standard: no).
socket-timeout = ZEIT Die Zeit, die WWWOFFLE auf Antworten wartet, bevor es die Verbindung aufgibt (Standard: 120, Angaben in Sekunden).
connect-retry = yes | no Falls eine Verbindung nicht erfolgreich war, soll WWWOFFLE automatisch nach einer kurzen Pause einen weiteren Versuch starten? (Standard: no).
ssl-allow-port = INTEGER Die Port-Nummer für 'Secure Socket Layer (SSL)' Verbindungen, zum Beispiel 'https'.

Wichtig:
  • Die Option request-changed kann negative Werte enthalten, dies bedeutet, daß lokal bereits vorhandene Seiten in jedem Fall einem erneuten Herunterladen vorgezogen werden.
  • Die Option request-changed-once "wiegt stärker" als die Option request-changed.
  • Die Option pragma-no-cache sollte auf no gesetzt werden, falls mit bestimmten Browsern sämtliche solche Seiten erneut bestellt werden.
  • Die Option ssl-allow-port sollte für https:// Verbindungen auf 443 gestellt werden. Es können für andere Verbindungen weitere SSL-Ports definiert werden.

 

Abschnitt 'FetchOptions'

Dieser Abschnitt steuert das Verhalten beim Herunterladen von bestellten Seiten.

stylesheets = yes | no Sollen HTML Style Sheets mit heruntergeladen werden?
images = yes | no Sollen Bilder mit heruntergeladen werden?
frames = yes | no Sollen HTML Frames mit heruntergeladen werden?
scripts = yes | no Sollen Scripts (z.B. Javascript) mit heruntergeladen werden?
objects = yes | no Sollen Objekte (z.B. Java Klassendateien) mit heruntergeladen werden?

Wichtig: Alle diese Optionen haben als Standardeinstellungen 'no'.

 

Abschnitt 'ModifyHTML'

Dieser Abschnitt erlaubt es, die HTML Dateien, die im Cache gespeichert werden, zu verändern, und zu kontrollieren auf welche Art und Weise diese Veränderungen geschehen.

enable-modify-html = yes | no Die Programmfunktionen für die HTML-Veränderung einschalten. Diese Option ist hier enthalten, weil die alleinige Präsenz des Programmteils, das diesen Abschnitt auswertet, schon (etwas) Geschwindigkeit kostet -- auch wenn es gar nichts tut. (Standard: yes)
add-cache-info = yes | no Soll am Ende jeder Seite eine WWWOFFLE Informationszeile über diese Seite eingesetzt werden (enthält Alter der Seite im Cache, Möglichkeiten zum Aktualisieren uvm.) (Standard: no).
anchor-cached-begin = HTML code Verweise (Links), die im Cache vorhanden sind, werden am Anfang mit dem hier angegebenen HTML Code ergänzt (Standard: keiner). Hiermit lassen sich Verweise auf Seiten, die bereits heruntergeladen wurden, hervorheben; damit vermeidet man ungewollte Verbindungsaufbauten (auf einem Dial on Demand System).
anchor-not-cached-begin = HTML code Verweise (Links), die nicht im Cache vorhanden sind, werden am Anfang mit dem hier angegebenen HTML Code ergänzt (Standard: keiner).
anchor-cached-end = HTML code Verweise (Links), die im Cache vorhanden sind, werden am Ende mit dem hier angegebenen HTML Code ergänzt (Standard: keiner).
anchor-not-cached-end = HTML code Verweise (Links), die nicht im Cache vorhanden sind, werden am Ende mit dem hier angegebenen HTML Code ergänzt (Standard: keiner).

Wichtig: Diese Optionen funktionieren nur korrekt, wenn der angegebene HTML Code auch syntaktisch korrekt ist. Ist er das nicht, ist das Resultat undefiniert.

 

Abschnitt 'LocalHost'

Dieser Abschnitt enthält eine Liste von Rechner(Host-)namen bzw. IP-Adressen, unter denen der Rechner, auf dem WWWOFFLE läuft, anderen Rechnern bekannt ist. Hiermit wird vermieden, daß sich der Proxy mit sich selbst unterhalten muß, um an seine eigenen Seiten heranzukommen (was etwas blödsinnig wäre).

HOSTNAME / IP Ein Hostname (Rechnername) oder eine IP-Adresse, unter welcher in Verbindung mit der im Abschnitt StartUp Portnummer der WWWOFFLE Server erreichbar ist.

Wichtig:
  • Die Namen müssen exakt übereinstimmen, Platzhalter/Wildcards sind nicht erlaubt (*, ?, usw.)
  • Alle hier angegebenen Namen/Adressen werden auch behandelt wie die im Abschnitt LocalNet und AllowedConnects angegebenen Namen/Adressen.
  • Der erste hier angegebene Name wird als der Proxy-Server Name benutzt, der Proxy-Server muß daher unter diesem Namen netzwerkweit erreichbar sein (insofern ist localhost unsinnig!).
  • Keiner der Einträge hier oder im Abschnitt LocalNet werden durch einen Proxy geholt.

 

Abschnitt 'LocalNet'

Dieser Abschnitt enthält eine Liste von Rechnernamen/IP-Adressen, die auf keinen Fall in den Cache gelangen, weil sie im lokalen Netzwerk liegen.

HOSTNAME / IP Ein Rechner/Hostname oder eine IP-Adresse, die als 'lokal' behandelt und nicht zwischengespeichert werden soll.

Wichtig:
  • Hier werden Platzhalter/Wildcards (*, ?, ..) unterstützt, siehe Abschnitt Wildcards.
  • Alle hier angegebenen Rechner werden als 'auch im offline Modus erreichbar' angesehen.
  • Alle Rechner im Abschnitt LocalHost werden ebenfalls nicht zwischengespeichert.
  • Keine der hier oder in LocalHost angegebenen Rechner werden durch einen Proxy angesprochen.

 

Abschnitt 'AllowedConnectHosts'

Dieser Abschnitt gibt eine Liste von Rechnern an, mit denen WWWOFFLE kommunizieren, i.e. Verbindungen aufbauen/annehmen, darf.

HOST(s) Rechner/Hostname oder IP Adresse.

Wichtig:
  • Hier werden Platzhalter/Wildcards (*, ?, ..) unterstützt, siehe Abschnitt Wildcards.
  • Allen Rechnern im Abschnitt LocalHost wird ebenfalls eine Verbindung gewährt.

 

Abschnitt 'AllowedConnectUsers'

Dieser Abschnitt enthält eine Liste von Benutzen (mit Kennwörtern), die zum WWWOFFLE Proxy Verbindung aufnehmen dürfen.

BENUTZER:KENNWORT Benutzername und Kennwort, getrennt durch einen Doppelpunkt (ohne Leerzeichen dazwischen!).

Wichtig:
  • Sowohl Benutzername als auch Kennwort werden im Klartext gespeichert.
  • Diese Funktion erfordert die Benutzung eines Browsers, der die HTTP/1.1 Erweiterungen versteht.

 

Abschnitt 'DontCache'

Dieser Abschnitt enthält eine Liste von URLs/Adressen, die nicht lokal von WWWOFFLE gespeichert werden sollen.

URL-ANGABEDiese URL/Adresse nicht lokal speichern.

Wichtig:

Die Seiten werden jedoch heruntergeladen, wenn sie bestellt oder abonniert wurden. Eine Erklärung des Begriffes URL-ANGABE gibt es am Ende dieses Textes.

 

Abschnitt 'DontGet'

Dieser Abschnitt enthält eine Liste von URLs/Adressen, die gar nicht erst heruntergeladen werden sollen. Dies ist sehr praktisch für Banner-Werbung oder ähnlichem.

URL-ANGABEDiese URL/Adresse nicht herunterladen.
replacement = URL-ANGABE (Optional) anstatt der oben angegebenen URL diese Seite anzeigen (sie könnte z.B. eine spezielle Fehlermeldung anzeigen oder ähnliches) (Standard: keine).

Wichtig:

Der Begriff URL-ANGABE wird am Ende des Textes erklärt. Für Bilder, die nicht heruntergeladen werden sollen, ist ein passender Ersatz ein 1x1 Pixel großes .GIF Bild, welches unter /local/images/trans-1x1.gif bei WWWOFFLE mitgeliefert wird.

 

Abschnitt 'DontGetRecursive'

Dieser Abschnitt enthält URLs/Adressen, die nicht rekursiv bestellt/abonniert werden können/sollen.

URL-ANGABEDiese URL/Adresse nicht rekursiv herunterladen.

Der Begriff URL-ANGABE wird am Ende des Textes erklärt.

 

Abschnitt 'DontRequestOffline'

Dieser Abschnitt enthält URLs/Adressen, die im Offline-Modus nicht bestellt werden können/solle.

URL-ANGABEDiese URL/Adresse nicht in Bestellungen aufnehmen.

Der Begriff URL-ANGABE wird am Ende des Textes erklärt.

 

Abschnitt 'CensorHeader'

Dieser Abschnitt enthält eine Liste von HTTP Kopf (Header-) Zeilen, die geändert oder herausgefiltert werden sollen.

HEADER = TEXT Ein HTTP Header-Feld (z.B. From, Cookie, User-Agent, ..) und der Text, der stattdessen gesendet werden soll.
referer-self = yes | no Den HTTP-Header referer auf die URL setzen, die gerade geladen wird (und nicht die letzte). Standard: nein.
referer-self-dir = yes | no Den HTTP-Header referer auf den Verzeichnisnamen der angeforderten URL setzen. Standard: nein.

Wichtig:
  • Die Header-Zeilen unterscheiden Groß/Kleinschreibung und werden nicht durch einen Doppelpunkt abgeschlossen.
  • Es kann der Wert 'none' angegeben werden, um den Header ganz zu entfernen, oder der Rest der ZEile nach dem Gleichzeichen einfach leergelassen werden.
  • Es werden nur gefundene Headerzeilen ersetzt, es werden keine hinzugefügt!
  • Die Option 'referer-self-dir' "wiegt stärker" als 'referer-self'.

 

Abschnitt 'FTPOptions'

Dieser Abschnitt beschreibt Optionen, die für die Benutzung von FTP (File Transfer Protocol) relevant sind.

anon-username = TEXT Der Benutzername, der für anonymen FTP-Zugang benutzt werden soll (Standard: 'anonymous').
anon-password = TEXT Das Kennwort, welches für anonymen FTP-Zugang benutzt werden soll (Standard: Ihre zur Laufzeit ermittelte eMail-Adresse).
auth-hostname = RECHNER[:PORT] Bei Zugriff auf diesem Rechner soll ein anderer Zugang benutzt werden, ...
auth-username = TEXT ... und zwar dieser Benutzername, ...
auth-password = TEXT ... und dieses Kennwort.

Wichtig:
  • Das 'anonymous'-Kennwort sollte mit Bedacht gewählt werden, besonders wenn Sie hinter einem Firewall sitzen.
  • Die Optionen 'auth-hostname', 'auth-username', 'auth-password' müssen direkt hintereinandergeschrieben werden. Diese Dreiergruppe kann für mehrere Zugänge allerdings mehrmals benutzt werden.
  • Die Option 'auth-hostname' muß exakt stimmen, es dürfen keine Wildcards wie '*', '?' etc. benutzt werden.

 

Abschnitt 'MimeTypes'

Dieser Abschnitt enthält eine Liste von MIME-Typen, die benutzt werden sollen, falls eine Dateiq direkt übertragen wird (nicht via HTTP), um den richtigen Dateitypen zu erkennen.

default = mimetype/subtype Der Standard-MIME Typ (Standard: 'text/plain').
.EXT = mime-type/subtype Der MIME Typ, der bei der Datei mit der angegebenen EXTension benutzt werden soll.

Wichtig:
  • Sie müssen den Punkt bei der Dateierweiterung mit angeben.
  • Falls mehrere Erweiterungen auf eine Datei passen, wird die längste benutzt.

 

Abschnitt 'Proxy'

Dieser Abschnitt bestimmt die externen Proxies (z.B. Ihres Providers), die WWWOFFLE selber benutzen soll.

default = RECHNER[:PORT] Ein Rechnername/IP-Adresse mit Port-Angabe, der standardmäßig als Proxy benutzt werden soll.
URL-ANGABE = RECHNER[:PORT] Eine Proxy-Adresse, die für bestimmte URLs/Adressen benutzt werden soll.
auth-hostname = RECHNER[:PORT] Eine Authentikation für den Proxy, falls notwendig.
auth-username = TEXT Der Benutzername für die Authentikation.
auth-password = TEXT Das Kennwort für die Authentikation.
ssl = RECHNER[:PORT] Ein Proxy, welcher für SSL (Secure Socket Layer) Verbindungen genutzt werden soll (z.B. 'https')

Wichtig:
  • Der Begriff 'URL-ANGABE' wird am am Ende des Textes erklärt.
  • Eine Adresse, der auf mehrere URL-ANGABEn paßt, wird über den am genauesten angegebenen Proxy angefordert. Beispiel: Wenn '*.de' über Proxy 1 geholt werden soll und '*.linux.de' über Proxy 2, dann wird die URL 'www.linux.de' über Proxy 2 angefordert.
  • Die Angabe 'none' verhindert die Benutzung von einem Proxy für ein bestimmtes Protokoll oder eine URL.
  • Keiner der Adressen in LocalHost oder LocalNet werden durch einen dieser Proxies angesprochen.
  • Die Optionen 'auth-hostname', 'auth-username', 'auth-password' müssen zusammen auftreten, sie können jedoch mehrmals benutzt werden.
  • Die Option 'auth-hostname' muß exakt angegeben werden, Wildcards ('*', '?') sind nicht erlaubt.

 

Abschnitt 'DontIndex'

Dieser Abschnitt enthält eine Liste von URLs/Adressen, die von WWWOFFLE nicht im Index angezeigt werden sollen. Es sollen die jeweiligen angegebenen URLs ...

outgoing = URL-ANGABE ... nicht unter "Bestellungen" (outgoing) angezeigt werden
latest = URL-ANGABE ... nicht unter "Letztes Mal" (lasttime/prevtime/...) angezeigt werden
monitor = URL-ANGABE ... nicht unter "Abonnements" (monitor) angezeigt werden
host = URL-ANGABE ... nicht unter "Hosts" (hosts) angezeigt werden
URL-ANGABE ... in keinem Index angezeigt werden

Der Begriff 'URL-ANGABE' wird am Ende dieses Textes erklärt.

Abschnitt 'Alias'

Dieser Abschnitt beschreibt eine Liste von Alias-Namen, die den WWWOFFLE Server dazu bringen, bestimmte URLs (d.h. Adressen) umzuleiten.

URL-ANGABE = URL-ANGABE Alle Anfragen für die erste URL-ANGABE werden mit der zweiten URL-ANGABE beantwortet, d.h. der Inhalt der zweiten URL-ANGABE wird gesendet.

Wichtig:
  • Der Begriff 'URL-ANGABE' wird am Ende dieses Textes erklärt.
  • Symbolische Links im Spool-Verzeichnis funktionieren, aber werden nur geprüft, wenn WWWOFFLE gestartet wird, oder mit der Option wwwoffle -config die Konfiguration neu eingelesen wird.
  • Die 'URL-ANGABE' darf keine Platzhalter/Wildcards wie '*' etc enthalten.

 

Abschnitt 'Purge'

Dieser Abschnitt beschreibt, welche Seiten, wann, aus dem Cache entfernt werden sollen ('entfernen' =~ 'purge'). Eine Maximalgröße für den Cache kann auch bestimmt werden.

use-mtime = yes|no Welche Dateiattribute sollen für die Bestimmung des Alters benutzt werden: atime (letzter Zugriff) oder mtime (letzte Änderung)? (Standard: no, also atime).
max-size = GROESSE Maximalgröße des Caches in Megabytes.
use-url = yes|no Sollen zusätzlich URL-spezifische Einstellungen geprüft werden? (Standard: nein, d.h. nur protokoll/host-weise Einstellungen prüfen)
del-dontget = yes|no Sollen Inhalte von Rechnern/Hosts, die aus dem DontGet Abschnitt kommen, gelöscht werden? (Standard: nein).
del-dontcache = yes|no Sollen Inhalte von Rechnern/Hosts, die aus dem DontCache Abschnitt kommen, gelöscht werden? (Standard: nein).
default = ALTER Maximalalter für Seiten in Tagen (Standard: 14).
URL-ANGABE = ALTER Maximalalter für diese eine URL.
Wichtig:
  • Der Begriff 'URL-ANGABE' wird am Ende dieses Textes erklärt.
  • Wird ein Rechner/Host mehrmals angegeben, wird das am genauesten angegebene Alter genommen. Siehe dazu auch die Bemerkungen im Abschnitt Proxy.
  • Ein Alter von '0' (Null) heißt, sofort löschen (bzw. gar nicht erst speichern). Ein negatives Alter heißt, gar nicht löschen.
  • Eine Maximalgröße von '0' für den Cache bedeutet, es gibt keine Begrenzung.
  • Die Größe des Caches wird aus den gespeicherten URLs bestimmt, die keine negative Altersangabe besitzen.
  • Die 'URL-ANGABE' wird nur auf Protokoll und Rechner/Hostname geprüft, außer use-url ist aktiviert (dies drückt allerdings die Geschwindigkeit etwas).

 


 

Wildcards / Platzhalter

Ein Platzhalter/'Wildcard' ist z.B. das Zeichen '*', welches für eine beliebige Anzahl von beliebigen Zeichen steht.

Im Prinzip ist dies das gleiche, was in einer Shell (oder unter DOS) auch gilt, mit der Ausnahme, daß hier der Stern auch für einen Pfadtrenner ('/') oder einen Punkt stehen kann.

Beispiele:

*.gifpaßt auf foo.gif und bar.gif
*.foo.comfpaßt auf www.foo.com und ftp.foo.com
/foo/*paßt auf /foo/bar.html und /foo/bar/foobar.html

 

URL-ANGABE

Wenn Sie einen Rechner/Host oder eine URL angeben, besteht diese Angabe meistens aus mehreren Informationen, die WWWOFFLE auf eine bestimmte Weise auswertet.

Eine URL besteht normalerweise aus vier Teilen:

protoDas Protokoll, welches benutzt wird, zum Beispiel HTTP oder FTP.
hostDer Rechner-/Hostname, der angesprochen werden soll, z.B. www.gedanken.demon.co.uk.
portDer Port des Rechners, der angesprochen werden soll, z.B. 80 für HTTP oder 21 für FTP.
pathDer Pfad des Verzeichnisses/der Datei, die angesprochen werden soll, z.B. /foo/.

Dies wird normalerweise so zusammengeknüpft:

PROTO://HOST[:PORT]/PATH

Eckige Klammern ([]) bedeuten, daß man die entsprechende Angabe auch weglassen kann (bei HTTP ist der Port fast immer 80).

Normalerweise wird in dieser Konfiguration folgende Syntax benutzt:

*://* Protokoll, Rechner, Port, Pfad beliebig (dies ist der Standard).
*://*/PFAD Protokoll, Rechner, Port beliebig, PFAD angegeben.
*://*/*.EXT Protokoll, Rechner, Port beliebig, Datei-Erweiterung/-typ angegeben.
*://HOST Protokoll/Port/Pfad beliebig, Rechner/HOST angegeben.
PROTO:// Protokoll angegeben, Rest beliebig.
PROTO://HOST Protokoll und Rechner/Host angegeben, Rest beliebig.
PROTO://HOST: Protokoll und Rechner angegeben, Standard-Port (je nach Protokoll), Pfad beliebig.
PROTO://HOST:PORT Protokoll, Rechner und Port angegeben, Pfad beliebig.

Die Pfade und Hostnamen werden mit denselben Wildcards behandelt und interpretiert, wie sie oben beschrieben werden. The matching of the host and the path use the wildcard matching that is described above.


Die Übersetzung dieses Dokumentes wurde von Jens Benecke erstellt. Es gelten die gleichen Lizenzbestimmungen wie für das gesamte WWWOFFLE Paket, ich betrachte die von mir übersetzte Dokumentation als Teil der Software. Jeder, der dieses Dokument liest, sollte sich moralisch verpflichtet fühlen, mir Fehler oder Unstimmigkeiten sofort per eMail mitzuteilen ;-)