GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavit HAProxy na CentOS 8

HAProxy je zkratka pro High Availability Proxy. Je napsaný v C a je to bezplatný a open-source TCP/HTTP Load Balancer a proxy řešení pro aplikace založené na TCP a HTTP. HAProxy se používá ke zlepšení výkonu serverového prostředí rozložením zátěže na více serverů.

HAProxy umožňuje automatické restartování aplikace nebo přesměrování práce na jiný server v případě selhání. Tento výkonný, vysoce výkonný, spolehlivý a bezpečný nástroj pro vyrovnávání zatížení je nejrozšířenější a byl speciálně navržen pro webové stránky s velmi vysokou návštěvností.

V tomto tutoriálu vám ukážeme, jak nastavit nástroj pro vyrovnávání zatížení vysoké dostupnosti pomocí HAProxy na CentOS 8.

Předpoklady

  • Tři nové CentOS 8 VPS na cloudové platformě Atlantic.Net
  • Heslo uživatele root nakonfigurované na každém VPS

V tomto kurzu použijeme následující nastavení:

HAProxy Server: – název hostitele:haproxy IP:192.168.0.10

Webový server 1:- název hostitele:web1 IP:192.168.0.11

Webový server 2:- název hostitele:web2 IP:192.168.0.12

Krok 1 – Vytvoření cloudového serveru Atlantic.Net

Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte CentOS 8 s alespoň 1 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.

Jakmile se přihlásíte k serveru CentOS 8, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.

aktualizace dnf -y

Krok 2 – Instalace a konfigurace Nginx

Poznámka:Dokončete tento krok na WebServer 1 a WebServer2

Nejprve budete muset nainstalovat webový server Nginx na instance web1 a web2.

Nginx můžete nainstalovat spuštěním následujícího příkazu:

dnf nainstalovat nginx -y

Po instalaci Nginx spusťte službu Nginx a povolte její spuštění při spuštění v obou instancích:

systemctl spustit nginxsystemctl povolit nginx

Dále upravte index.html soubor pro každou instanci.

Upravte index.html soubor na web1 instance pomocí následujícího příkazu:

echo "Toto je můj první webový server Nginx"> /usr/share/nginx/html/index.html

Upravte index.html soubor na web2 instance pomocí následujícího příkazu:

echo "Toto je můj druhý webový server Nginx"> /usr/share/nginx/html/index.html

Po dokončení uložte a zavřete soubor.

Krok 3 – Instalace a konfigurace HAProxy

Poznámka:Dokončete tento krok na serveru HAProxy

Nejprve nainstalujte HAProxy na instanci serveru haproxy pomocí následujícího příkazu:

dnf install haproxy -y

Po dokončení instalace zálohujte výchozí konfigurační soubor haproxy:

mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg-bak

Konfigurační soubor je rozdělen do čtyř hlavních částí.

  1. globální nastavení: Používá se k nastavení parametrů celého procesu.
  2. výchozí: Používá se k nastavení výchozích parametrů pro všechny ostatní sekce.
  3. frontend: Používá se k definování způsobu externího přístupu k HAProxy, aby se umožnil přístup k backendu.
  4. backend: Používá se k definování sady serverů, ke kterým se bude proxy připojovat za účelem předávání příchozích spojení.

Dále vytvořte nový konfigurační soubor haproxy pomocí následujícího příkazu:

nano /etc/haproxy/haproxy.cfg

Přidejte následující řádky, které odpovídají vaší infrastruktuře:

#————————————————————————

globallog 127.0.0.1 local2chroot /var/lib/haproxypidfile /var/run/haproxy.pidmaxconn 4000user haproxygroup haproxydaemon

# zapněte statistiky unix socket

stats socket /var/lib/haproxy/stats

# využívat celosystémové krypto-politiky

ssl-default-bind-ciphers PROFILE=SYSTEMssl-default-server-ciphers PROFILE=SYSTEM

#————————————————————————

výchozí režim httplog globaloption httplogoption dontlognulloption http-server-closeoption forwardfor 127.0.0.0/8option redispatchretries 3timeout http-request 10stimeout fronta 1mtimeout připojení 10stimeout klient 1mtimeout kontrola 1mtimeout server 1mtimeout 1mtimeout 

#————————————————————————

# hlavní frontend, který slouží jako proxy k backendům

#————————————————————————

frontend haproxy_balancer # definovat název frontend.bind 192.168.0.10:80 # IP adresa HAProxy serveroption http-server-closeoption forwardforstats uri /haproxy?stats # Určete stránku stavu HAProxy.default_backend webservers

#————————————————————————

# kruhové vyvažování mezi různými backendy

#————————————————————————

backend webservers # Zadejte název pro identifikaci aplikace

režim httpbalance roundrobin # definuje algoritmus pro vyrovnávání zátěže pro vyrovnávání zátěže httpchk HEAD / HTTP/1.1\r\nHost:\ localhostserver nginx-web1 192.168.0.11:80 check # IP adresa prvního backend serverserver2 nginx.0.1 :80 zkontrolujte # IP adresu druhého backend serveru

Poznámka:Ujistěte se, že jste upravili výše uvedenou IP adresu o IP relevantní pro nastavení vašeho serveru

Po dokončení uložte a zavřete soubor. Poté pomocí následujícího příkazu zkontrolujte konfigurační soubor haproxy, zda neobsahuje chyby:

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

Měli byste získat následující výstup:

Konfigurační soubor je platný

Nakonec spusťte službu haproxy a povolte její spuštění při spouštění pomocí následujícího příkazu:

systemctl spustit haproxysystemctl povolit haproxy

Haproxy můžete také ověřit pomocí následujícího příkazu:

systemctl status haproxy

Měli byste získat následující výstup:

  • haproxy.service – HAProxy Load Balancer
Načteno:načteno (/usr/lib/systemd/system/haproxy.service; zakázáno; přednastaveno dodavatelem:zakázáno)Aktivní:aktivní (běží) od pá 2020-04-24 02:14:55 EDT; Před 5 minutamiProces:1371 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q (kód=ukončeno, stav=0/ÚSPĚCH)Hlavní PID:1373 (haproxy)Úkoly:2 (limit:6087)Paměť:2,8MCGroup :/system.slice/haproxy.service├─1373 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid└─1374 /usr/sbin/haproxy -Ws - f /etc/haproxy/haproxy.cfg -p /run/haproxy.pidApr 24 02:14:55 haproxy systemd[1]:Spouštění HAProxy Load Balancer...Apr 24 02:14:55 haproxy systemd[1]:Spuštěno HAProxy Load Balancer.

Krok 4 – Konfigurace protokolování HAProxy

Protokolování HAProxy vám umožňuje vidět statistiky každého připojení k vašim backendovým webovým serverům.

Rsyslog můžete nakonfigurovat úpravou souboru /etc/rsyslog.conf:

nano /etc/rsyslog.conf

Odkomentujte následující řádek:

module(load="imudp")input(type="imudp" port="514")

Po dokončení uložte a zavřete soubor. Dále budete muset nakonfigurovat server rsyslog pro příjem a zpracování zpráv protokolu HAProxy.

Chcete-li tak učinit, vytvořte nový konfigurační soubor haproxy.conf:

nano /etc/rsyslog.d/haproxy.conf

Přidejte následující řádky:

local2.=info /var/log/haproxy-access.loglocal2.notice /var/log/haproxy-info.log

Po dokončení uložte a zavřete soubor. Poté restartujte službu rsyslog a povolte její spuštění při spuštění pomocí následujícího příkazu:

restart systemctl rsyslogsystemctl povolí rsyslog

Krok 5 – Test HAProxy Load Balancing

V tomto okamžiku je HAProxy nainstalován a nakonfigurován. Je čas otestovat, zda vyrovnávání zátěže funguje nebo ne.

Otevřete webový prohlížeč a zadejte svou HAProxy IP http://192.168.0.10. Na následující obrazovce byste měli vidět obsah vašeho prvního webového serveru Nginx:

Dále obnovte webovou stránku. Na následující obrazovce byste měli vidět obsah vašeho druhého webového serveru Nginx:

Stav haproxy můžete zobrazit pomocí adresy URL http://192.168.0.10/haproxy?stats. Na následující obrazovce byste měli vidět stav vašich serverů, aktuální četnost požadavků, doby odezvy a další metriky:

Závěr

Ve výše uvedené příručce jsme se naučili, jak nastavit vyrovnávání zátěže s vysokou dostupností pomocí HAProxy na CentOS 8. Nyní můžete snadno navrhnout a nakonfigurovat vyrovnávání zátěže tak, aby vyhovovalo požadavkům vaší IT infrastruktury a aplikací; vyzkoušejte to na VPS Hosting od Atlantic.Net.


Linux
  1. Jak nastavit SFTP server na CentOS

  2. Jak nastavit HAProxy v Ubuntu 16.04

  3. Jak nastavit server NFS na CentOS 7 / RHEL 7

  1. Jak nastavit SysLog Server na CentOS 7 / RHEL 7

  2. Jak nastavit replikaci MySQL na CentOS

  3. Jak nastavit NTP server v CentOS?

  1. Jak nastavit FTP server s VSFTPD na CentOS 7

  2. Jak nastavit FTP server s VSFTPD na CentOS 8

  3. Jak nastavit DNS Server (Bind) na CentOS 8 / RHEL8