HAProxy: Difference between revisions

From Linux Wiki
Jump to navigation Jump to search
No edit summary
Line 57: Line 57:
* timeout connect/client/server – limite de timp pentru conexiuni.
* timeout connect/client/server – limite de timp pentru conexiuni.
 * Dacă un frontend sau backend are propriul mode (ex: mode tcp), acesta suprascrie automat valoarea din defaults
 * Dacă un frontend sau backend are propriul mode (ex: mode tcp), acesta suprascrie automat valoarea din defaults
==== Frontend HTTP (port 80) ====
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32;frontend http_in
&#32;&#32;&#32;&#32;bind *:80
&#32;&#32;&#32;&#32;mode http
&#32;&#32;&#32;&#32;option forwardfor
&#32;&#32;&#32;&#32;default_backend http_webserver
</code>
* *bind :80 – ascultă pe portul 80.
* mode http – procesează header-ele HTTP.
* option forwardfor – adaugă X‑Forwarded‑For cu IP-ul real al clientului.
* default_backend http_webserver – trimite traficul către backend-ul HTTP.
==== Backend HTTP =====
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32;backend http_webserver
&#32;&#32;&#32;&#32;mode http
&#32;&#32;&#32;&#32;balance leastconn
&#32;&#32;&#32;&#32;option httpchk GET /
&#32;&#32;&#32;&#32;server vm01 192.168.14.11:80 check
&#32;&#32;&#32;&#32;server vm02 192.168.14.22:80 check
&#32;&#32;&#32;&#32;server vm03 192.168.14.22:80 check
</code>
* mode http – backend-ul procesează HTTP.
* balance leastconn – trimite traficul către serverul cu cele mai puține conexiuni active.
* option httpchk GET / – health-check HTTP.
* server vm01/vm02/vm03 – cele trei VM.

Revision as of 01:21, 15 July 2026

HAProxy pe Ubuntu 2X.04 LTS

HAProxy
HAProxy

Instalare HAProxy

La instalare HAProxy activează serviciul systemd. # apt -y install haproxy


Structura fișierului de configurare

Fișierul principal: # nano /etc/haproxy/haproxy.cfg

Configurația este împărțită în:

  • global – setări pentru procesul HAProxy
  • defaults – setări implicite pentru toate secțiunile
  • frontend – puncte de intrare pentru trafic
  • backend – serverele către care se trimite traficul

Secțiunea global

global log /dev/log local0 log /dev/log local1 notice maxconn 4096 user haproxy group haproxy daemon

  • log /dev/log local0 – trimite logurile către syslog.
  • log /dev/log local1 notice – al doilea canal de log, nivel minim notice.
  • maxconn 4096 – număr maxim de conexiuni simultane.
  • user/group haproxy – rulează cu userul de sistem haproxy.
  • daemon – rulează în background.

Secțiunea defaults

defaults log global mode http option httplog option dontlognull timeout connect 5s timeout client 30s timeout server 30s

  • log global – folosește setările din secțiunea global.
  • mode http – modul implicit pentru frontend/backend.*
  • option httplog – loguri detaliate HTTP.
  • option dontlognull – nu loghează conexiuni goale.
  • timeout connect/client/server – limite de timp pentru conexiuni.

* Dacă un frontend sau backend are propriul mode (ex: mode tcp), acesta suprascrie automat valoarea din defaults

Frontend HTTP (port 80)

frontend http_in bind *:80 mode http option forwardfor default_backend http_webserver

  • *bind :80 – ascultă pe portul 80.
  • mode http – procesează header-ele HTTP.
  • option forwardfor – adaugă X‑Forwarded‑For cu IP-ul real al clientului.
  • default_backend http_webserver – trimite traficul către backend-ul HTTP.

Backend HTTP =

backend http_webserver mode http balance leastconn option httpchk GET / server vm01 192.168.14.11:80 check server vm02 192.168.14.22:80 check server vm03 192.168.14.22:80 check

  • mode http – backend-ul procesează HTTP.
  • balance leastconn – trimite traficul către serverul cu cele mai puține conexiuni active.
  • option httpchk GET / – health-check HTTP.
  • server vm01/vm02/vm03 – cele trei VM.