info@a-coding-project.de

Der Apache als Proxyserver

Dass sich der Apache Webserver mit Modulen umfangreich erweitern lässt ist ja schon bekannt. Hier wird nun das Proxy-Modul vorgestellt, das bei dem Apache 2.0 bereits im Lieferumfang enthalten ist und unter Linux nur aktiviert werden braucht beziehungsweise unter Windows in der httpd.conf nur auskommentiert werden muss.

Was ist ein Proxyserver?

Ein Proxyserver ist ein Server der stellvertretend für einen Client eine Webseite oder ähnliches abholt und diese an den Client liefert. Wenn nun ein weiterer Client die gleiche Webseite anfordert dann braucht der Proxyserver nur zu prüfen ob sich an der Webseite etwas geändert hat und wenn dies nicht der Fall ist dann kann der Proxyserver diese sofort von seinem Zwischenspeicher aus ausliefern. Dies entlastet den Zielwebserver und sorgt für schnellere Datenübertragung.

Wer sollte einen Proxyserver benutzen?

Da die Anfragen der Clients von dem Proxyserver zwischengespeichert werden profitieren Netzwerke mit sehr vielen Clients die gleichzeitig ins Internet wollen von einem Proxyserver. Der Proxyserver kann dann die zwischengespeicherten Seiten von seinem lokalen Laufwerk ausliefern und ist damit nicht von der Geschwindigkeit der Internetverbindung abhängig. Mit einem Proxyserver lassen sich auch sehr einfach Einschränkungen einstellen. Zum Beispiel kann der Internetauftritt der Konkurrenz gesperrt werden oder die eigene Webseite direkt vom Webserver im Netzwerk geholt werden ohne über die Internetleitung zu gehen.

mod_proxy

Das Modul mod_proxy stellt die Proxy-Funktionalität bereit mit welcher der Apache Webserver als Proxyserver konfiguriert werden kann. Mit folgender Zeile in der httpd.conf wird das Modul für den Proxyserver geladen:

LoadModule proxy_module modules/mod_proxy.so

Des Weiteren muss die Anweisung ProxyRequests auf On geschaltet sein damit der Proxyserver verwendet werden kann. Folgend noch ein paar Konfigurationsdirektiven für das Proxymodul. Ganz ausführlich sind alle Möglichkeiten auch in der Apache-Manual beschrieben welche sich nach der Installation unter http://localhost/manual findet.

ProxyRequests On | Off 
# Schaltet das Proxymodul ein
ProxyRemote www.domain2.org proxy2.domain1.org 
# Damit lässt sich ein entfernter Proxyserver 
# für bestimmte Webseiten angeben.
ProxyPass /sport http://www.sportdomain.org 
# Damit lässt sich eine entfernte Webseite in den Server laden. 
# Im Beispiel gibt es dann unter http://localhost/sport die Webseite 
# von http://www.sportdomain.org.
ProxyBlock boeseseite xxx 
# Damit lassen sich Adressen mit dem entprechenden Inhalt blocken
NoProxy .eigenedomain.org
# Damit lässt sich der Proxyserver für 
# bestimmte Adressen ausschalten.

Für Disk-Caching muss zusätzlich das Modul mod_cache und mod_disk_cache geladen werden. Anschließend stehen auch die folgenden Direktiven zur Verfügung:

CacheRoot c:/chacheroot
# Bestimmt den Speicherplatz des Caches
CacheDefaultExpire 3600 
# Bestimmt wie lange Dokumente zwischengespeichert 
# werden. In Sekunden
CacheSize 1000
# Bestimmt die Größe des Speicherplatzes in CacheRoot.

Beispiel für einen Proxyserver

Hier nun ein kleines Beispiel für einen Proxy der mehrere Computer vom LAN ins Internet bringt. Das lokale Netzwerk hat dabei IP Adressen aus dem Bereich 192.168.10.1 bis ...254

LoadModule cache_module modules/mod_cache.so
LoadModule disk_cache_module modules/mod_disk_cache.so
CacheRoot c:/cacheroot
CacheSize 25000

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so 
ProxyRequests On
ProxyPass /sport http://www.sportdomain.org
<proxy *>
  Order Deny,Allow
  Deny from all
  Allow from 192.168.10.0/24
</proxy>

Bei den Clients im Netzwerk muss nur noch der Proxyserver im Browser eingetragen werden und schon sollten alle im Internet surfen können. Außerdem gibt es unter http://webserver/sport den Internetauftritt von http://www.sportdomain.org zu sehen. Einzig HTTP S-Seiten lassen sich noch nicht aufrufen. Dieses Problem lässt sich aber mit dem Modul mod_ssl beheben welches in einem späteren Kapitel noch erklärt wird.

Weiterlesen: ⯈ Domainumzug mit Mod Rewrite

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Auch interessant