Lastverteilung

Load Balancing: POUND

1. Szenario:

Die Last (Zugriffe) auf eine Domain (z.B.: meine-domain.de) soll auf vier Server verteilt werden.
Diese verfügen über einen identischen Datensatz.

BILD

2.Installation

apt-get install pound.
Folgende Verzeichnisse wurden angelegt:

/etc/default/pound ( Vermerk, dass Pound beim Start des Rechners mitgestartet wird )
/etc/init.d/pound ( Startscript )
/etc/pound (Verzeichnis für das Konfigurationsscript )
/usr/share/doc/pound ( Dokumentation )

3. Funktionsweise

Der Loadbalancer dessen IP 1.1.1.1 an die Adresse www.meine-domain.de gebunden ist, nimmt alle Anfragen an den Webserver entgegen. Anders ausgedrückt: Pound lauscht unter der Adresse 1.1.1.1 auf den default http-Port 80 auf Anfragen und gibt diese selbständig an die vier anderen Server weiter.
Die Server, an die Weiterleitungen realisiert werden, sind in der /etc/pound/pound.cfg in der Sektion Backend angegeben. Die eins (1) hinter der Backend Ip-Adresse markiert die Priorität der Weiterleitung. In diesem Beispiel sind die Backends alle gleichberechtigt.

4. Die Konfigurationsdatei:

Fett markierte Eintraege wurden hinzugefuegt:

/etc/pound/pound.cfg (Konfigurationsdatei)
## Globale Einstellungen:
## Gruppe / User des apache2 Servers

## global options:

User www-data
Group www-data

## allow PUT and DELETE also (by default only GET, POST and HEAD):
ExtendedHTTP 0
WebDAV 0

## Logging: (goes to syslog by default)
## 0 no logging
## 1 normal
## 2 extended
## 3 Apache-style (common log format)
LogLevel 3

## check backend every X secs:
Alive 30

## redirect all requests on port 8080 ("ListenHTTP") to the local webserver see "UrlGroup" below):
ListenHTTP 1.1.1.1,80

##
UrlGroup ".*"
BackEnd 3.3.3.1,80,1
BackEnd 3.3.3.2,80,1
BackEnd 3.3.3.3,80,1
BackEnd 3.3.3.4,80,1

Session IP 300
EndGroup

5. Logging:

Pound protokolliert per default als daemon in /var/log/syslog. Damit die Datei syslog nicht "vollgemüllt" wird, kann das Logging in eine eigene pound - Logdatei erfolgen. Die Datei
/etc/syslog.conf (Konfigurationsdatei) kann hierfür wie folgt geändert werden:

[ …]
#
# First some standard logfiles. Log by facility.
#
auth,authpriv.* /var/log/auth.log

# default *.*
*.*;daemon.none /var/log/syslog
# schreibe alles in syslog außer daemon

[ … ]
# infos schreib in pound.log – das ist somit ein zentrales Apache-Logfile, weil in der
# Konfiguration Level 3 eingestellt ist
daemon.=info /var/log/pound.log
# warn von pound in extra-Datei
daemon.warn /var/log/pound.warn