Erinevus lehekülje "HAProxy" redaktsioonide vahel
14. rida: | 14. rida: | ||
= Parameetrid = | = Parameetrid = | ||
− | Konfiguratsioonis on neli põhilist sektsiooni - ''defaults'', ''frontend'', ''backend'' ja ''listen''. | + | Konfiguratsioonis on neli põhilist sektsiooni - ''defaults'', ''frontend'', ''backend'' ja ''listen''. |
+ | |||
+ | - Defaults kehtib kõikidele sektsioonidele, kusjuures igas sektsioonis mainitud sama parameeter kirjutab default väärtuse üle. | ||
+ | |||
+ | - Frontend kehtib sissetulevatele ühendustele | ||
+ | |||
+ | - Backend kehtib suunatud ühendustele | ||
+ | |||
+ | - Listen kombineerib endas frontendi ja backendi. Listeni süntaks on lühem, kuid võib olla keerulisem lugeda. | ||
+ | |||
+ | Kõiki parameetreid (ja mis parameeter kuskil blokis lubatud on), saad lugeda HAProxy konfiguratsioonist. (Vaata: [http://cbonte.github.io/haproxy-dconv/configuration-1.5.html#4.1 Ver 1.5 konfiguratsioon 4.1 Proxy keyword matrix]) | ||
+ | |||
+ | == Põhilised parameetrid == | ||
+ | === balance === | ||
+ | Balance määrab koormusjaoturi algoritmi. Võimalikud variandid on '''leastconn''', '''source''' ja '''roundrobin'''. | ||
+ | * leastconn saadab ühenduse kõige vähem koormatud serverile | ||
+ | * source saadab kõik ühelt IP-lt tulnud ühendused ühele ja samale serverile | ||
+ | * roundrobin saadab ühendused vaheldumisi kõigile serveritele (vaikeväärtus) | ||
+ | |||
+ | === weight === | ||
+ | Weight parameeter on valikuline ja lubab serveri juures määrata kaalu. Kaalu võib kasutada siis, kui serverid on erineva konfiguratsiooniga ja soov on võimsamale serverile anda suuremat koormust. Soovitatav on kasutada koormusi kümnendsammuga (10, 20, 30), siis on lihtsam võimalus vahele lisada mõnda serverit, kui seesugune vajadus peaks tekkima. | ||
+ | |||
+ | Väärtus peab olema vahemikus 0...100, kus 0 on kõige väiksema ja 100 kõige suurema kaaluga server. Serverid võivad olla ka sama kaaluga (nt 3 tükki on kaaluga 30 ja 2 tükki kaaluga 50). | ||
+ | |||
+ | === minconn, maxconn === | ||
+ | Parameeter peaks olema kindlasti seadistatud, kui kasutatakse roundrobin tüüpi koormuse jaotust. Ehk siis, kuna roundrobin on vaikeväärtus, siis peaks igaljuhul need parameetrid kasutusele võtma. | ||
+ | |||
+ | minconn ja maxconn on vastavalt madala koormuse ja suure koormusega lubatud ühenduste arv. Kui ühenduste arv on täis, siis pannakse ülejäänud ühendused ootele, et mitte serverit koormata. | ||
== Näidiskonfiguratisoon == | == Näidiskonfiguratisoon == | ||
+ | |||
+ | Konfiguratsioonis eeldatakse, | ||
+ | * proksiserver aadressiga 192.168.0.2 | ||
+ | * server 1 aadressiga 192.168.0.10 | ||
+ | * server 2 aadressiga 192.168.0.20 | ||
+ | * server 3 aadressiga 192.168.0.30 | ||
+ | |||
+ | Näidiskonfiguratsioon /etc/haproxy/haproxy.cfg | ||
+ | |||
global | global | ||
daemon | daemon | ||
28. rida: | 64. rida: | ||
timeut server 240s | timeut server 240s | ||
− | frontend | + | frontend sissetulevad_yhendused *:80 |
maxconn 1000 | maxconn 1000 | ||
+ | default backend arvutus_serverid | ||
− | + | backend arvutus_serverid | |
− | |||
− | backend | ||
mode tcp | mode tcp | ||
− | balance | + | balance source |
− | server | + | server serveri_nimi1 192.168.0.10:5555 check |
− | server | + | server serveri_nimi2 192.168.0.20:5555 check |
− | server | + | server serveri_nimi3 192.168.0.30:5555 check |
listen statistika 192.168.0.2:8080 | listen statistika 192.168.0.2:8080 | ||
46. rida: | 81. rida: | ||
stats realm HAProxy\ statistika.\ Parool\ palun! | stats realm HAProxy\ statistika.\ Parool\ palun! | ||
stats auth admin:1234 | stats auth admin:1234 | ||
+ | |||
+ | === Kommentaarid konfiguratsiooni kohta === | ||
+ | Konfiguratsiooni saab kirjutada väga mitmel erineval moel. Näiteks üks erinevus: | ||
+ | |||
+ | frontend yhenduse_nimi | ||
+ | bind *:80 | ||
+ | VERSUS | ||
+ | frontend yhenduse_nimi *:80 | ||
+ | |||
+ | Kirjapildilt kaks erinevat, kuid mõte ja toimimine on mõlemal sama - kuulatakse kõiki sissetulevaid ühendusi kõikidele masinale omistatud IP aadressidele pordile 80. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Serveri nimi on niiöelda sinu enda jaoks, et saaksid statistika lehel eristada ja identifitseerida servereid. Kui kasutad parameetrit "check" serveri järel, siis kontrollitakse, kas server on "elus" ja sellest antakse ka statistika lehel märku. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Kui kuskil nimes on vaja kasutada tühikut " ", siis tuleb tühikule eelnevalt kirjutada tagurpidi kaldkriips "\" (ilma jutumärkideta!). Vt konfiguratsioonis näiteks parameetrit "stats realm". | ||
= Lisamaterjal = | = Lisamaterjal = | ||
* http://haproxy.1wt.eu/ | * http://haproxy.1wt.eu/ | ||
+ | * Cybernetica AS juhend - https://x-road.ee/docs/est/haproxy_kasutamine_turvaserverite_koormusjaotuseks.pdf Mõeldud küll X-Tee turvaserveri seadistamiseks, aga lugemiseks ja tutvumiseks sobib kenasti. |
Redaktsioon: 14. märts 2014, kell 11:26
Toores. Ehk seda pala võib täiendada.
HAProxy on üsna võimas proksiserver, mis suunab edasi nii TCP kui ka HTTP-protokolli ühendusi. Lisaks põhifunktsioonile (ehk proksimisele) töötab HAproxy ka koormusjaoturina, jagades defineeritud serverite vahel koormust erinevate meetoditega.
2014. märtsi seisuga on viimane versioon arenduses 1.5-dev21, mida oleme ka näidete juures kasutanud. Siiamaani pole vigu esinenud. Viimane stabiilne versioon on 1.4. Kui https tuge on vaja, siis on vaja kasutada versiooni 1.5 ja riskida mõningate vigadega, mis võivad esineda.
Sisukord
HAProxy installeerimine ja konfigureerimine
Käsurealt saab installeerida HAproxy kasutades käsku
sudo apt-get install haproxy
Sellepeale paigaldatakse vajalikud failid ja konfiguratsioonifaili loetakse asukohast */etc/haproxy/haproxy.cfg* Seal oli vist veel teid, kus neid otsitakse, aga etc asukoht oli mu arust esimene.
Parameetrid
Konfiguratsioonis on neli põhilist sektsiooni - defaults, frontend, backend ja listen.
- Defaults kehtib kõikidele sektsioonidele, kusjuures igas sektsioonis mainitud sama parameeter kirjutab default väärtuse üle.
- Frontend kehtib sissetulevatele ühendustele
- Backend kehtib suunatud ühendustele
- Listen kombineerib endas frontendi ja backendi. Listeni süntaks on lühem, kuid võib olla keerulisem lugeda.
Kõiki parameetreid (ja mis parameeter kuskil blokis lubatud on), saad lugeda HAProxy konfiguratsioonist. (Vaata: Ver 1.5 konfiguratsioon 4.1 Proxy keyword matrix)
Põhilised parameetrid
balance
Balance määrab koormusjaoturi algoritmi. Võimalikud variandid on leastconn, source ja roundrobin.
- leastconn saadab ühenduse kõige vähem koormatud serverile
- source saadab kõik ühelt IP-lt tulnud ühendused ühele ja samale serverile
- roundrobin saadab ühendused vaheldumisi kõigile serveritele (vaikeväärtus)
weight
Weight parameeter on valikuline ja lubab serveri juures määrata kaalu. Kaalu võib kasutada siis, kui serverid on erineva konfiguratsiooniga ja soov on võimsamale serverile anda suuremat koormust. Soovitatav on kasutada koormusi kümnendsammuga (10, 20, 30), siis on lihtsam võimalus vahele lisada mõnda serverit, kui seesugune vajadus peaks tekkima.
Väärtus peab olema vahemikus 0...100, kus 0 on kõige väiksema ja 100 kõige suurema kaaluga server. Serverid võivad olla ka sama kaaluga (nt 3 tükki on kaaluga 30 ja 2 tükki kaaluga 50).
minconn, maxconn
Parameeter peaks olema kindlasti seadistatud, kui kasutatakse roundrobin tüüpi koormuse jaotust. Ehk siis, kuna roundrobin on vaikeväärtus, siis peaks igaljuhul need parameetrid kasutusele võtma.
minconn ja maxconn on vastavalt madala koormuse ja suure koormusega lubatud ühenduste arv. Kui ühenduste arv on täis, siis pannakse ülejäänud ühendused ootele, et mitte serverit koormata.
Näidiskonfiguratisoon
Konfiguratsioonis eeldatakse,
- proksiserver aadressiga 192.168.0.2
- server 1 aadressiga 192.168.0.10
- server 2 aadressiga 192.168.0.20
- server 3 aadressiga 192.168.0.30
Näidiskonfiguratsioon /etc/haproxy/haproxy.cfg
global daemon pidfile /var/run/haproxy.pid maxconn 4096 defaults mode http timeout client 240s timeout connect 500s timeut server 240s frontend sissetulevad_yhendused *:80 maxconn 1000 default backend arvutus_serverid backend arvutus_serverid mode tcp balance source server serveri_nimi1 192.168.0.10:5555 check server serveri_nimi2 192.168.0.20:5555 check server serveri_nimi3 192.168.0.30:5555 check listen statistika 192.168.0.2:8080 mode http stats enable stats uri / stats realm HAProxy\ statistika.\ Parool\ palun! stats auth admin:1234
Kommentaarid konfiguratsiooni kohta
Konfiguratsiooni saab kirjutada väga mitmel erineval moel. Näiteks üks erinevus:
frontend yhenduse_nimi bind *:80
VERSUS
frontend yhenduse_nimi *:80
Kirjapildilt kaks erinevat, kuid mõte ja toimimine on mõlemal sama - kuulatakse kõiki sissetulevaid ühendusi kõikidele masinale omistatud IP aadressidele pordile 80.
Serveri nimi on niiöelda sinu enda jaoks, et saaksid statistika lehel eristada ja identifitseerida servereid. Kui kasutad parameetrit "check" serveri järel, siis kontrollitakse, kas server on "elus" ja sellest antakse ka statistika lehel märku.
Kui kuskil nimes on vaja kasutada tühikut " ", siis tuleb tühikule eelnevalt kirjutada tagurpidi kaldkriips "\" (ilma jutumärkideta!). Vt konfiguratsioonis näiteks parameetrit "stats realm".
Lisamaterjal
- http://haproxy.1wt.eu/
- Cybernetica AS juhend - https://x-road.ee/docs/est/haproxy_kasutamine_turvaserverite_koormusjaotuseks.pdf Mõeldud küll X-Tee turvaserveri seadistamiseks, aga lugemiseks ja tutvumiseks sobib kenasti.