Haproxy - server proxy, linuxspace

De înaltă disponibilitate Proxy sau HAProxy - server proxy popular pentru Linux, Solaris și FreeBSD cu load balancing TCP / HTTP open source. Sarcina sa principală - mediu de server, creșterea productivității prin distribuirea volumului de muncă între mai multe servere (web, aplicații, baze de date). Ele sunt astfel de bine-cunoscute proiecte, cum ar fi GitHub, Imgur, Instagram și Twitter.

HAProxy disponibile în depozitele de cele mai multe distribuții Linux. Dacă aveți utilizator FreeBSD. următoarele vor fi prevăzute cu porturile necesare. De asemenea, puteți seta HAProxy prin managerul de pachete.

  • Pentru DEB bazate, cum ar fi Debian și Ubuntu, executați următoarea comandă:

$ Sudo apt-get install haproxy

  • Pentru distribuții bazate pe RPM, cum ar fi Red Hat, Fedora și CentOS, executați următoarea comandă:

$ Sudo yum install haproxy

  • Pentru distribuțiilor bazate pe SUSE, cum ar fi SUSE Linux Enterprise și openSUSE, executați următoarea comandă:

$ Sudo Zypper instala haproxy

  • Pentru FreeBSD și sisteme de operare similare, HAProxy pot fi instalate din colecția de porturi și o cale să-l mai jos: / usr / porturi / net / haproxy. Alternativ, puteți instala folosind managerul de pachete:

$ Sudo instalați PKG net / haproxy

Acest lucru se va stabili HAProxy pe sistemul dumneavoastră. În acest caz, în cazul în care comanda pentru distribuție sau sistemul de operare nu funcționează, verificați documentația sistemului sau un depozit pentru HAProxy instalarea corectă.

Parametrii de configurare pentru HAProxy configurat utilizând fișierul haproxy.cfg. Comanda de configurare de mai sus este de obicei plasat fișierul în directorul / etc / haproxy /, dar această abordare poate fi foarte diferită (depinde de sistemul de operare).

Pentru a configura HAProxy pentru a lucra cu Galera Cluster, adăugați următoarele linii la haproxy.cfg fișierul de configurare.

# Load Balancing pentru Galera Cluster
asculta Galera 192.168.1.10:3306
sursă de echilibru
modul tcp
opţiunea tcpka
mysql verificare haproxy utilizator
server de node1 192.168.1.1:3306 verifica greutatea 1
server de node2 192.168.1.2:3306 verifica greutatea 1
server de node2 192.168.1.3:3306 verifica greutatea 1

  • echilibru determină politica pentru selectarea unei destinații, care este, un server trebuie să distribuie conexiuni de intrare.
  • Modul tcp specifică tipul de conexiuni pe care trebuie să-l distribuie. Galera Cluster utilizează conexiuni TCP.
  • Opțiunea tcpka include funcția activă pentru a menține conexiunea TCP.
  • opțiunea utilizator MySQL verificare Stabilește dacă să verifice serverul de baze de date pentru a determina dacă nodul este activ în prezent.
  • server de verifica greutatea de 1 noduri predelyaet HAProxy sunt necesare pentru utilizarea lor viitoare în conexiunile de rutare.

alegerea Politica de destinație

Când HAProxy primește o nouă conexiune, există un număr de algoritmi cu care el alege unde să trimită acest link. Acest algoritm este ales parametrul de echilibru, care este descris mai sus.

In exemplul de mai sus configurație HAProxy configurat să utilizeze politica de selectare a sursei de semnal. Pentru propriile implementari. selectați o politică care funcționează cel mai bine cu infrastructura și sarcina.

Verificarea server de baze de date

În plus față de rutare conexiuni TCP clusterului Galera. HAProxy pot efectua, de asemenea, controale medicale de bază pe serverul de baze de date. În cazul în care acest lucru este permis, apoi HAProxy încercând să se conecteze la nodul și Analizează răspunsul rezultat sau o eroare pentru a determina dacă nodul se execută. Puteți activa această funcție folosind mysql-check. Cu toate acestea, este nevoie să creați un utilizator în clusterul HAProxy. pe care le va folosi la conectarea.

CREATE USER $ 'haproxy'@'192.168.1.10';

După setarea HAProxy și componente pentru a începe să lucreze cu HAProxy ar trebui să-l ruleze pe un server. Pentru servere. folosind init, executați următoarele comenzi:

Start $ Serviciu haproxy

Pentru servere. folosind systemd, executați o altă comandă:

$ Systemctl începe haproxy

Acum HAProxy funcționează. Atunci când noi conexiuni sunt de cotitură la acest server, le trimite prin nodurile din cluster.

Ca un exemplu, un fișier de configurare mare răspândire:

# -----------------------
# Setări globale
# -----------------------
la nivel mondial
log 127.0.0.1 local2
chroot / var / lib / haproxy
pid /var/run/haproxy.pid
MAXCONN 4000
haproxy utilizator
haproxy grup
daemon
statistici soclu / var / lib / haproxy / statistici
implicite
log la nivel mondial
reîncearcă 2
mod http
timeout conecta 30000
server de timeout 50000
client timeout 50000
asculta myql_cluster 0.0.0.0:3306
sursă de echilibru
modul tcp
opţiunea tcpka
server de node1 85.34.56.45 verifica greutatea 1
server de node2 85.34.56.45 verifica greutatea 1
server de node2 85.34.56.45 verifica greutatea 1
asculta statistici *: 1936
statistici permit
Statistici uri /
Ascundeți statisticile versiune
Statistici auth admin: MakeAmericaGreatAgain