Erinevus lehekülje "HAProxy" redaktsioonide vahel

Allikas: Kuutõrvaja
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_soovitud_nimi *:5555
+
  frontend sissetulevad_yhendused *:80
 
   maxconn 1000
 
   maxconn 1000
 +
  default backend arvutus_serverid
 
   
 
   
default_backend turvaserverid
+
  backend arvutus_serverid
 
  backend turvaserverid
 
 
   mode tcp
 
   mode tcp
   balance leastconn
+
   balance source
   server ts1 192.168.0.10:5555 check weight 10 maxconn 100
+
   server serveri_nimi1 192.168.0.10:5555 check
   server ts2 192.168.0.20:5555 check weight 10 maxconn 100
+
   server serveri_nimi2 192.168.0.20:5555 check
   server ts3 192.168.0.30:5555 check weight 10 maxconn 100
+
   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

                                        Roheline.jpg 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.

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