HTTP vahendaja ja koormusjaotur Pound
Sisukord
Sissejuhatus
Tarkvara Pound http://www.apsis.ch/pound/ võimaldab korraldada järgmisi tegevusi veebiserverite ees
- HTTP vahendamine (ingl. k. reverse proxy)
- koormusjaotus (ingl. k. load balancing)
- tarkvaraline SSL-kiirendi (ingl. k. SSL offload)
- Pound ei vahelaosta (ingl. k. caching) andmeid
Kasutusskeem võiks näiteks näha välja selline
avalik võrk
|
__|__
| | tulemüür
|_____|
|
|
|
---------|----------|------------
|
__|__
| | Pound (10.0.0.3)
|_____|
|
|
----|-----------|-------------|------------------|-----
| | ...
__|__ __|__
| | http server 1 | | http server 2
|_____| |_____|
(10.0.0.11) (10.0.0.12)
Sõltuvalt vajadusest võib korraldada ka nii, et veebiserverite ees töötab iga ühe külge fikseeritud Pound ning Poundide vahel korraldab koormusjaotust tulemüür.
Paigaldamine
Pound peaks leiduma enamuse levinumae operatsioonis pakihalduses
Näiteks selle paigaldamiseks Debianis tuleb öelda
# apt-get install pound
FeeBSD's leiab tarkvara portsude kaustast www/pound alt.
Seadistusfail on /etc/pound/pound.cfg ning käivitamine ja seiskamine toimub tavapäraselt skriptiga
# /etc/init.d/pound stop|start
HTTP vahendamine
HTTP vahendamise korraldab näiteks selline seadistusfail
User "www-data"
Group "www-data"
LogLevel 4
Alive 5
Daemon 1
ListenHTTP
Address 10.0.6.12
Port 80
Service
URL "/mujale"
Redirect "http://mujale.loomaaed.tartu.ee/"
End
Service
BackEnd
Address 10.0.1.14
Port 8880
TimeOut 1200
End
End
End
Pound käivitamiseks tuleb öelda
# /etc/init.d/pound start
Käivitamise tulemusena hakkab Pound kuulama päringuid soketil 10.0.6.12:80 ning ise pöörduma pärigutele vastuste saamiseks soketi 10.0.1.14:8880 poole.
Vaikimisi salvestatakse logi /var/log/syslog faili.
Oluline on tähele panna, et esitatud konfiguratsioonis Pound ei pööra päringute edastamisel tähelepanu päringus sisalduvale domeeninimele.
Tarkvaraline SSL-kiirendi
SSL-kiirendamise korraldab selline seadistusfaili sektsioon
ListenHTTPS
Address 10.0.6.12
Port 443
Cert "/etc/pound/www.loomaaed.tartu.ee.pem"
Ciphers "HIGH:MEDIUM:!ADH:!SSLv2"
Service
BackEnd
Address 10.0.1.14
Port 8889
TimeOut 1200
End
End
End
kus
- failis /etc/pound/www.loomaaed.tartu.ee.pem esinevad andmed sellises järjekorras
Veebiserveri sertifikaadi salajane võti Veebiserveri sertifikaat Kõrgema taseme sertifikaat, mille suhtes veebiserveri sertifikaat on väljastatud .. CA juursertifikaat
- Ciphers määrab milliseid šiffreid ja protokolle kasutatakse, vaikimisi on ka 40bitised šiffrid lubatud
HTTP vahendamise ja SSL-kiirendamise sektsioonid võivad esineda samas seadistusfailis koos.
Veateated
Pound võimaldab kostümiseerida standarseid veateateid, nt
- Err503 - direktiivi kasutamisel ListenHTTP sektsioonis esitatakse faili /srv/www/err-503.html sisu
Err503 "/srv/www/err-503.html"
Päiste järgi edasisuunamine
Päise järgi klapitades saab suunata brauserit Location direktiiviga edasi teisele aadressile
Service HeadRequire "Host:.*sedapole.loomaaed.tartu.ee.*" Redirect "https://www.loomaaed.tartu.ee/" End
Koormusjaotus
User "nobody"
Group "nobody"
LogLevel 1
Alive 2
ListenHTTP
Address 10.40.0.3
Port 80
End
Service
HeadRequire "Host: .*zoo.tartu.ee.*"
BackEnd
Address 10.0.0.11
Port 80
TimeOut 300
End
BackEnd
Address 10.0.0.12
Port 80
TimeOut 300
End
Session
Type Cookie
ID "JSESSIONID"
TTL 300
End
End
Märkused
- 2009 aasta Pound versiooni abil ei ole võimalik nõuda üksiku URI puhul kliendisertifikaati ning muude jaoks mitte, saab nõuda kas kogu veebikoha kohta või siis üldse mitte kliendisertifikaadikontrolli kasutada
- 2009 aasta Pound versiooni abil ei saa kasutada AddHeader direktiivi Service sektsiooni see, ainult Listener'is
- Debian Lenny kasutamisel tuleb arvestada, et maksimaalse query string suuruse piiranguks on 1024 baiti, selle muutmiseks sobib nt kompileerida src pound paketist tarkvara kasutades seejuures pound-2.4.3/debian/rules failis real
env LDFLAGS="$(LDFLAGS)" CFLAGS="$(CFLAGS)" ./configure ...
lisaks parameetrit '--with-maxbuf=4096'. Uueks query string piiranguks on siis 4kB.
Kasulikud lisamaterjalid
Lingid
http://www.dotdeb.org/2008/08/25/storing-your-php-sessions-using-memcached/ php sessioonide salvestamine proxymise jaoks, et need ei läheks katki serveri muutumisel.