V tomto tutoriálu vám ukážeme, jak nainstalovat HAProxy na váš CentOS 8. Pro ty z vás, kteří nevěděli, HAProxy je bezplatný nástroj pro vyrovnávání zatížení a proxy s vysokou dostupností HTTP/TCP server. Šíří požadavky mezi více serverů za účelem zmírnění problémů způsobených selháním jednoho serveru. HA Proxy používá řada vysoce profilovaných webů včetně GitHub, Bitbucket, Stack Overflow, Reddit, Tumblr, Twitter a Tuenti a používá se v produktu OpsWorks od Amazon Web Services.
Tento článek předpokládá, že máte alespoň základní znalosti Linuxu, víte, jak používat shell, a co je nejdůležitější, hostujete svůj web na vlastním VPS. Instalace je poměrně jednoduchá a předpokládá, že běží v účtu root, pokud ne, možná budete muset přidat 'sudo
‘ k příkazům pro získání oprávnění root. Ukážu vám krok za krokem instalaci HAProxy na CentOS 8.
Předpoklady
- Server s jedním z následujících operačních systémů:CentOS 8.
- Abyste předešli případným problémům, doporučujeme použít novou instalaci operačního systému.
- Přístup SSH k serveru (nebo stačí otevřít Terminál, pokud jste na počítači).
non-root sudo user
nebo přístup kroot user
. Doporučujeme jednat jakonon-root sudo user
, protože však můžete poškodit svůj systém, pokud nebudete při jednání jako root opatrní.
Nainstalujte HAProxy na CentOS 8
Krok 1. Nejprve začněme tím, že zajistíme, aby byl váš systém aktuální.
sudo clean all sudo dnf update
Krok 2. Instalace HAProxy na CentOS 8.
HAProxy je k dispozici na výchozím CentOS 8, nyní použijte následující dnf
příkaz k instalaci HAProxy:
sudo dnf install haproxy
Krok 3. Konfigurace HAProxy.
Vytvoříme konfigurační soubor /etc/haproxy/haproxy.cfg
obsahující potřebná nastavení a konfigurace:
sudo nano /etc/haproxy/haproxy.cfg
Do souboru zadejte následující:
global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon stats socket /var/lib/haproxy/stats ssl-default-bind-ciphers PROFILE=SYSTEM ssl-default-server-ciphers PROFILE=SYSTEM defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 frontend main bind *:5000 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 backend static balance roundrobin server static 127.0.0.1:4331 check backend app balance roundrobin 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
Podrobnosti o konfiguraci a další informace si můžete prohlédnout na této adrese URL. Jakmile nakonfigurujete HAProxy, je čas spustit službu:
sudo systemctl start haproxy sudo systemctl enable haproxy
Krok 4. Nakonfigurujte bránu firewall.
Přidáme HAProxy do firewallu CentOS 8 a aktualizujeme pravidla pomocí následujících příkazů:
sudo firewall-cmd --add-port=8088/tcp --permanent sudo firewall-cmd --reload
Krok 5. Nakonfigurujte protokolování HAProxy.
Pro konfiguraci standardního protokolování HAProxy upravte /etc/rsyslog.conf
a povolit příjem UDP Syslog na portu 514:
sudo nano /etc/rsyslog.conf
... # Provides UDP syslog reception # for parameters see http://www.rsyslog.com/doc/imudp.html module(load="imudp") # needs to be done just once input(type="imudp" port="514") ... *.info;mail.none;authpriv.none;cron.none,local2.none /var/log/messages local2.* /var/log/haproxy.log ...
Potom uložte konfigurační soubor a spusťte příkaz níže, abyste zkontrolovali případné chyby:
rsyslogd -N1 sudo systemctl restart rsyslog haproxy
Krok 6. Nakonfigurujte Apache X-Forwarded-For Logging na serverech backend.
Nyní se přihlásíme k backendovým serverům a nakonfigurujeme Apache tak, aby protokoloval hlavičky X-Forwarded-For. Výchozí řádek, který měníme, je:
... LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common ...
Upravte tento řádek tak, aby vypadal takto:
... LogFormat "\"%{X-Forwarded-For}i\" %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common ...
Uložte soubor a restartujte Apache:
apachectl configtest sudo systemctl restart httpd
Krok 7. Testování HAProxy Load Balancer.
Chcete-li ověřit, zda je HAProxy schopno vyrovnávat zatížení požadavků HTTP, přejděte do prohlížeče a přistupujte k HAProxy pomocí názvu hostitele nebo IP adresy.
Gratulujeme! Úspěšně jste nainstalovali HAProxy. Děkujeme, že jste použili tento návod k instalaci HAProxy na vaše systémy CentOS 8. Pro další pomoc nebo užitečné informace vám doporučujeme navštívit oficiální web HAProxy.