echilibrarea încărcării folosind haproxy - comunitatea vscale
Vscale permite scalarea verticală ușoară (puteți în mai puțin de un minut pentru a crește în mod semnificativ performanța serverului dvs.), dar, uneori, pe care doriți să scară orizontală - la procesarea cererilor / sarcini distribuite pe mai multe servere, crește toleranța la erori (eșecul unuia dintr-un bazin de servere trec neobservate utilizatori, în timp ce în cazul unei pierderi vertical-scalate de serviciu poate fi foarte mare), și oferă o mulțime de flexibilitate în setările și de management. Luați în considerare exemplul unei soluții specializate de echilibrare - HAProxy. HAProxy folosit de giganți cum ar fi Twitter, Instagram, Github, StackOverflow, Reddit și multe altele. Programul poate fi instalat pe mai multe sisteme diferite, vom folosi Ubuntu 16.04.
cerințe tehnice
- un server este sub sarcină echilibrist
- 3 server cerere stivuitoare
- pe fiecare dintre serverele unui utilizator cu drepturi sudo-
Etapa 1. Prepararea backend
Dacă scară un proiect existent, este probabil că aveți deja cel puțin un server care gestionează solicitările de utilizator, atunci ai nevoie pentru a recrea mediul său de muncă (un set de configurare și software) pe unul sau mai multe servere noi.
Vom crea 3 noi servere de beneficii vscale vă permite să faceți acest lucru în câteva clicuri de mouse. proxy-uri HAProxy cereri de utilizator prin distribuirea lor între serverele pe unele algoritm, așa că fiecare mașină nevoie de un server web. Prin urmare, fiecare server va actualiza indexul managerul de pachete și a pus Nginx:
Și de a schimba pagina de bun venit, astfel încât să puteți determina care dintre serverele genera un răspuns:
Lasă un astfel de conținut (pune toate șir unic în tag-ul H1):
In acest training backend poate fi considerată completă, trece la partea distractivă.
Pasul 2: Instalați balansier
Când selectați un server pentru echilibrist ar trebui să pornească de la faptul că 1GB de RAM este suficient pentru a deservi aproximativ 20-30 de mii de sesiuni concurente, cu alte cuvinte, atâta timp cât serviciul nu este de până la dimensiunea de Facebook sau Twitter, pentru balansier va fi suficient de aproape orice server.
HAProxy incluse în depozitul oficial Ubuntu. Noi actualizăm indexul managerul de pachete și setați HAProxy:
Pasul 4. Configurarea balansier
Dacă nu ați adus un obicei util ca fișierele de configurare de backup înainte de editare, ar trebui să se gândească la ea ca un obicei te va salva de la o situație în care un serviciu critic nu reușește să înceapă din cauza modificări incorecte în configurația și retragerea anterioară de configurare derulare înapoi nu este posibil. Creați o copie de siguranță a config:
Notă pentru cei care nu se confruntă cu un fel de stenograme: conținutul acolade spune interpret de linie de comandă că echipa ar trebui să fie extins de tip „mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.backup“
Pentru a începe editarea config:
Deci, avem o foaie curată. Ce avem nevoie? HAProxy are o configurație foarte flexibilă și konfirugatsiya poate conține un număr mare de directive și condiții, dar vom începe cu un simplu. Fișierul de configurare este format din mai multe secțiuni. Unele secțiuni (front-end, backend, ascultă) ar trebui să aibă numele dvs., unele (de exemplu, valori implicite) - poate, dar nu este nevoie, unele (la nivel global) - nu ar trebui.
Adăugați setări globale:
Aici am primit următoarele instrucțiuni HAProxy:
- log - pentru a vă conecta / dev / log păstrând "obiect" local0
- chroot - setările de securitate, „blocare“, HAProxy în directorul specificat
- Statistici soclu - configurare soclu, în care vor fi transferate Statistica
- MAXCONN - numărul maxim de compuși concurenți într-un singur proces
- utilizator - utilizator în numele căreia este pornit programul
- grup de utilizatori în numele căreia este pornit programul - grup
- daemon - rula ca un proces daemon
Expune valorile implicite:
Secțiunea implicite descrie setările implicite pentru toate celelalte secțiuni care urmează acest lucru. În fișierul konfigruratsii acesta poate fi de mai multe secțiuni implicite, într-un astfel de caz, parametrii descriși în această secțiune va fi redefinit în cele ce urmează, și va fi aplicată în secțiunea care se extinde dincolo de ea. În această secțiune, vom descrie următorii parametri:
- log - indică în care înregistrările din jurnal duce (la nivel mondial, în acest caz, înseamnă că utilizați parametrii definiți în secțiunea globală)
- Modul - stabilește un protocol de comunicare, ia una din valorile: tcp, http, sănătate
- reîncearcă - numărul de încercări de a se conecta la server în caz de eșec
- Opțiunea httplog - log format, în cazul HAProxy pentru cereri HTTP-proxy, este recomandat să activați această setare
- Opțiunea reexpedieri - permite programului să rupă și să reatribuiți o sesiune în cazul unei erori de server
- contimeout - timpul maxim de așteptare a unei conexiuni de succes la server
Noi acum indică HAProxy, ce cere el ar trebui să asculte, acest lucru necesită secțiunea front-end, care, în exemplul nostru vom numi „față“:
opțiunea Legare cu o valoare de *: 80 spune că HAProxy trebuie să accepte toate cererile la portul 80. Parametrul Default_backend specifică ce serverul se va ocupa de aceste cereri. În acest caz - backend_servers, asa ca am sunat la secțiunea următoare:
Acum totul este gata pentru testare, cu toate acestea, veți dori, probabil, pentru a monitoriza starea de „fermă“ și statisticile sale, acest lucru se va adăuga o altă secțiune în fișierul de configurare:
Astfel, în această secțiune am arătat HAProxy, el trebuie să arate statisticile pe pagina „/ haproxy_stats“ pe portul 10001, în cazul în care utilizatorul introduce numele de utilizator „admin“ si „parola“ parola.
Pasul 3. Testarea
Pasul 4. Selectați algoritmul de echilibrare
HAProxy oferă mai multe algoritmi de echilibrare, și în funcție de sarcina dumneavoastră, puteți alege cele mai potrivite:
concluzie
Am analizat procesul de organizare de echilibrare a sarcinilor folosind HAProxy, a făcut instalarea și configurarea inițială și s-au familiarizat cu diferite algoritmi de echilibrare. Cu aceste cunoștințe aveți posibilitatea să pună în aplicare sistemul de scalabilitate cu o creștere a sarcinii și de a crește rezistența.
tglnkLinux tglnkNgnix tglnkgit