Hoe HAProxy op Centos 7/6/5 te installeren, configureren en optimaliseren

In dit bericht wordt uitgelegd hoe u & amp; HAProxy op Centos 7/6/5 optimaliseren om een ​​krachtige load balancer te maken met een maximale gelijktijdige verbinding tot 10000.

HAProxy is een betrouwbare, krachtige TCP / HTTP load balancer. U kunt meer lezen over HAProxy hier op de officiële website .

De huidige stabiele versie van HAProxy op het moment van dit bericht is 1.9 met deze officiële documentatie .

HAProxy installeren

Om HAProxy te installeren kunt u deze opdracht gebruiken:

sudo yum install -y haproxy

Om HAProxy te starten:

sudo systemctl start haproxy

HAProxy stoppen:

sudo systemctl stop haproxy

Om de HAProxy-status te controleren:

sudo systemctl status haproxy

HAProxy-runs inschakelen bij opstarten

sudo systemctl enable haproxy

HAProxy configureren

Ons netwerk ziet er zo uit:

user -----> haproxy:9000 -------->backend1 (172.16.10.20:5000)
                         -------->backend2 (192.168.5.19:6000)

In deze topologie luistert HAProxy naar gebruikersverzoeken op poort 9000, alle aanvragen worden doorgestuurd naar 2 backends: backend1 (172.16.10.20:5000) en backend2 (192.168.5.19:6000)

Standaard is het hoofdconfiguratiebestand van HAProxy: /etc/haproxy/haproxy.cfg

We moeten HAProxy configureren om aan onze behoefte te voldoen. Configureer eerst HAProxy frontend listener. Bewerk de frontend luisterpoort in het hoofdfrontend gedeelte van het configuratiebestand als volgt:

---------------------------------------------------------------------
 main frontend which proxys to the backends
 ---------------------------------------------------------------------
 frontend  main *:9000
  acl url_static path_beg -i /static /images /javascript /stylesheets
  acl url_static path_end -i .jpg .gif .png .css .js
  use_backend static if url_static
 default_backend app

Vervolgens moeten we onze backend-apps aanpassen:

---------------------------------------------------------------------
 round robin balancing between the various backends
 ---------------------------------------------------------------------
 backend app
     balance     roundrobin
     server   backend1  172.16.10.20:5000 check
     server   backend2  192.168.5.19:6000 check
     #server  app1 127.0.0.1:5001 check
     #server  app2 127.0.0.1:5002 check
     #server  app3 127.0.0.1:5003 check
     #server  app4 127.0.0.1:5004 check

Voordat we HAProxy opnieuw starten, moeten we valideren of ons configuratiebestand iets mis is met deze opdracht:

 haproxy -c -V -f /etc/haproxy/haproxy.cfg 

in deze opdracht:

  • -c: aanvinken
  • -V: Verbose
  • -f: Bestand
Related:  Hoe scl uit te voeren schakel rh-python36 in Linux crontab in

Als alles goed gaat, ziet u uitvoer als volgt:

Configuration file is valid

Nu kunnen we ons configuratiebestand opslaan en HAProxy opnieuw opstarten om wijzigingen toe te passen:

sudo systemctl restart haproxy

Controleer de status van HAProxy:

sudo systemctl status haproxy

HAProxy optimaliseren

Allereerst moeten we HAProxy-statistiekenpagina / gezondheidscontrole inschakelen door die regels toe te voegen aan het einde van het hoofdconfiguratiebestand op: /etc/haproxy/haproxy.cfg

---------------------------------------------------------------------
 HAProxy Stats at: 171.244.5.195:8088/haproxy?stats
 --------------------------------------------------------------------
 listen  stats   *:8088
         mode            http
         log             global
        maxconn 10     
        timeout client  100s     
        timeout server  100s     
        timeout connect 100s     
        timeout queue   100s     
        stats enable     
        stats hide-version     
        stats refresh 30s     
        stats show-node     
        stats auth admin:config91231passwd    
        stats uri  /haproxy?stats