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.