[1] HTTP Load Balancing

7 lutego 2022 Wyłączono przez Adam [zicherka] Nogły

Zainstaluj HAProxy, aby skonfigurować serwer równoważenia obciążenia. Ten przykład jest oparty na środowisku, jak poniżej.

Skonfiguruj serwery, których połączenie HTTP z serwerem HAProxy jest przekazywane do serwerów Backend Web.

[1] Zainstaluj HAProxy.

[root@vlsr01 ~]# dnf install haproxy

[2] Skonfiguruj HAProxy.

[root@vlsr01 ~]# mcedit /etc/haproxy/haproxy.cfg
#zakomentuj wszystkie sekcje [frontend ***] [backend ***]
#dodaj następujące następujące sekcje
#zdefiniuj Frontend (dowolna nazwa jest OK [http-in])
frontend http-in
#nasluchuj na 80 porcie
    bind *:80
#ustaw domyślny Backend
    default_backend    backend_servers
#przesyłaj nagłówek X-Forwarded-For
    option             forwardfor
#zdefiniuj Backend
backend backend_servers
#metoda: roundrobin
    balance            roundrobin
#definicja serwerów Backend’owych
    server             node01 192.168.100.102:80 check
    server             node02 192.168.100.103:80 check

[root@vlsr01 ~]# systemctl enable --now haproxy

[3] Jeżeli Firewalld pracuje, otwórz port dla http by zezwolić na dostęp klientów do HAProxy.

[root@vlsr01 ~]# firewall-cmd --add-service=http –permanent
[root@vlsr01 ~]# firewall-cmd –reload

[4] Domyślnie dla HAproxy, dzienniki są wysyłane do obiektu [local2], więc skonfiguruj Rsyslog, aby zapisywał je w pliku.

[root@vlsr01 ~]# mcedit /etc/rsyslog.conf
#linie 19, 20: odkomentuj i dodaj
module(load="imudp") # needs to be done just once
input(type="imudp" port="514")
$AllowedSender UDP, 127.0.0.1
#linie 46, 47: zmień
*.info;mail.none;authpriv.none;cron.none;local2.none    /var/log/messages
local2.*                                                /var/log/haproxy.log

[root@vlsr01 ~]# systemctl restart rsyslog

[5] Zmień ustawienia Serwerów Web Backend’u (w tym przykładzie httpd Apache) na rejestrowanie nagłówka X-Forwarded-For.

[root@vlsr02 ~]# mcedit /etc/httpd/conf/httpd.conf
#linia 199: zmień
LogFormat "\"%{X-Forwarded-For}i\" %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

[root@vlsr02 ~]# systemctl restart httpd

[6] Sprawdź poprawność działania HAProxy, poprzez dostęp do Frontendu.