GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nastavit vysoce dostupný NGINX s KeepAlived na CentOS 8

Nginx je bezplatný, open-source a jeden z nejpopulárnějších webových serverů po celém světě. Může být také použit jako reverzní proxy, load balancer a HTTP cache. Vysoká dostupnost umožňuje aplikaci v případě selhání přesměrovat práci do jiného systému. K nastavení vysoce dostupného systému jsou k dispozici různé technologie.

Keepalived je systémový démon, který nepřetržitě monitoruje služby nebo systémy a dosahuje vysoké dostupnosti v případě selhání. Pokud je jeden uzel mimo provoz, pak zdroje obsluhoval druhý uzel.

V tomto tutoriálu vám ukážu, jak nastavit vysoce dostupný webový server Nginx s KeepAlived na CentOS 8.

Předpoklady

  • Dva servery se systémem CentOS 8, jeden pro hlavní uzel a jeden pro záložní uzel.
  • Na vašem serveru je nakonfigurováno heslo uživatele root.

Instalovat Nginx na oba uzly

Nejprve budete muset nainstalovat balíček Nginx do obou uzlů. Můžete jej nainstalovat pomocí následujícího příkazu:

dnf nainstalovat nginx -y

Jakmile je Nginx nainstalován na obou uzlech, spusťte službu Nginx a povolte její spuštění při restartu systému:

systemctl spustit nginx
systemctl povolit nginx

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Vytvořit soubor na obou uzlech

Dále budete muset vytvořit vlastní soubor index.html na obou uzlech k identifikaci každého uzlu.

Na prvním uzlu vytvořte soubor index.html pomocí následujícího příkazu:

echo "

Toto je můj první uzel webového serveru NGINX

" | tee /usr/share/nginx/html/index.html

Na druhém uzlu vytvořte soubor index.html pomocí následujícího příkazu:

echo "

Toto je můj druhý uzel webového serveru NGINX

" | tee /usr/share/nginx/html/index.html

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

Instalovat a konfigurovat Keepalived

Dále budete muset nainstalovat Keepalived na oba uzly. Ve výchozím nastavení je balíček Keepalived dostupný ve výchozím úložišti CentOS 8. Můžete jej nainstalovat spuštěním následujícího příkazu:

dnf install keepalived -y

Jakmile je balíček keepalived nainstalován na obou uzlech, budete muset upravit výchozí konfigurační soubor keepalived na obou uzlech.

Na prvním uzlu upravte soubor keepalived.conf:

nano /etc/keepalived/keepalived.conf

Odeberte výchozí obsah a přidejte následující obsah:

global_defs { # Keepalived process identifier router_id nginx}# Skript pro kontrolu, zda Nginx běží nebo notvrrp_script check_nginx { script "/bin/check_nginx.sh" interval 2 váha 50}# Virtuální rozhraní - Priorita určuje pořadí, ve kterém přiřazené rozhraní k převzetí v failovervrrp_instance VI_01 { state MASTER interface eth0 virtual_router_id 151 priorita 110 # Virtuální IP adresa sdílená mezi dvěma webovými servery NGINX, která bude plovoucí virtual_ipaddress { 192.168.1.10/24 } track_script { authentication check_nginx aAH} tajné }}

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

Na druhém uzlu upravte soubor keepalived.conf:

nano /etc/keepalived/keepalived.conf

Odeberte výchozí obsah a přidejte následující obsah:

global_defs { # Keepalived process identifier router_id nginx}# Skript pro kontrolu, zda Nginx běží nebo notvrrp_script check_nginx { script "/bin/check_nginx.sh" interval 2 váha 50}# Virtuální rozhraní - Priorita určuje pořadí, ve kterém přiřazené rozhraní k převzetí v failovervrrp_instance VI_01 { stav BACKUP interface eth0 virtual_router_id 151 priorita 100 # Virtuální IP adresa sdílená mezi dvěma webovými servery NGINX, která bude plovoucí virtual_ipaddress { 192.168.1.10/24 } track_script { authentication check_nguth a AH tajné }}

Uložte a zavřete soubor, pak budete muset vytvořit skript pro kontrolu, zda služba Nginx běží nebo ne. Můžete jej vytvořit pomocí následujícího příkazu:

Poznámka :Stačí nahradit MASTER za BACKUP a 110 za 100 ve výše uvedeném konfiguračním souboru.

nano /bin/check_nginx.sh

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

#!/bin/shif [ -z "`pidof nginx`" ]; pak ukončete 1fi

Uložte a zavřete soubor a poté nastavte správná oprávnění pomocí následujícího příkazu:

chmod 755 /bin/check_nginx.sh

Nakonec spusťte službu keepalived a povolte její spuštění při restartu systému pomocí následujícího příkazu:

systemctl spustit keepalived
systemctl povolit keepalived

Stav služby keepalived můžete také zkontrolovat pomocí následujícího příkazu:

systemctl status keepalived

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

? keepalived.service - LVS a VRRP High Availability Monitor Načteno:načteno (/usr/lib/systemd/system/keepalived.service; zakázáno; přednastaveno dodavatelem:zakázáno) Aktivní:aktivní (běží) od čt 2021-04-08 04:24 :22 EDT; Před 5s Proces:3141 ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS (kód=ukončeno, stav=0/ÚSPĚCH) Hlavní PID:3142 (udržováno) Úkoly:2 (limit:12524) Paměť:2,1M CGroup:slice/keepalived.service ??3142 /usr/sbin/keepalived -D ??3143 /usr/sbin/keepalived -DApr 08 04:24:22 node1 Keepalived_vrrp[3143]:(VI_01) Změna efektivní priority z 110 na 0860Apr 04:24:25 uzel1 Keepalived_vrrp[3143]:(VI_01) Časový limit příjmu reklamyApr 08 04:24:25 uzel1 Keepalived_vrrp[3143]:(VI_01) Vstup do MASTER STATEApr 08 04:24:25 uzel11 Keep[3] Keepalived_013 Keep A1 VIPs.Apr 08 04:24:25 node1 Keepalived_vrrp[3143]:Odesílání bezplatných ARP na eth0 pro 192.168.1.10Apr 08 04:24:25 node1 Keepalived_vrrp[3143]:Odesílání/VI_9gratitoue6 on-line .1.10Apr 08 04:24:25 node1 Keepalived_vrrp[3143]:Odesílání bezplatného ARP na eth0 pro 192.168.1.10Apr 08 04:24:25 node1 Keepalived_vrrp[3143]RP on91RP on91106. .10Apr 08 04:24:25 node1 Keepalived_vrrp[3143]:Odesílání bezplatných ARP na eth0 pro 192.168.1.10Apr 08 04:24:25 node1 Keepalived_vrrp[3143]:Odesílání A10on gratue.1 

Stav virtuální IP adresy na hlavním uzlu můžete také ověřit pomocí následujícího příkazu:

IP přidat show

V následujícím výstupu byste měli vidět virtuální IP adresu 192.168.1.10:

1:lo: mtu 65536 stav qdisc noqueue NEZNÁMÝ výchozí skupina qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:0 inet 127.0.0.1/8 rozsah hostitel lo valid_lft navždy preferovaný_lft navždy inet6 ::1/128 rozsah hostitel valid_lft navždy preferovaný_lft navždy2:eth0: mtu 1500 stav qdisc UP/Disk výchozí fq1 00:00:2d:3a:20:9b brd ff:ff:ff:ff:ff:ff inet 45.58.32.155/24 brd 45.58.32.255 rozsah globální noprefixroute eth0 platný_lft navždy preferovaný_lft rozsah navždy inet 160th 19292. valid_lft navždy preferovaný_lft navždy inet6 fe80::200:2dff:fe3a:209b/64 odkaz rozsahu valid_lft navždy preferovaný_lft navždy3:eth1: mtu 1500 qdisc link0len UPq_codel výchozí skupina:qdisc UP1000 00:0a:3a:20:9b brd ff:ff:ff:ff:ff:ff inet6 fe80::200:aff:fe3a:209b/64 odkaz rozsahu valid_lft navždy preferovaný_l ft navždy

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Konfigurace brány firewall na obou uzlech

Dále budete muset povolit port 80 a povolit VRRP na obou uzlech. Můžete to udělat pomocí následujícího příkazu:

firewall-cmd --permanent --add-service=http
firewall-cmd --add-rich-rule='rule protocol value="vrrp" accept' --permanent

Poté znovu načtěte firewall, aby se změny projevily:

firewall-cmd –reload

Ověřit Keepalived

V tomto okamžiku jsou nainstalovány a nakonfigurovány Nginx a Keepalived. Je čas otestovat, zda vysoká dostupnost Nginx funguje nebo ne.

Otevřete webový prohlížeč a přejděte na adresu URL http://vaše-virtuální-ip . Měli byste vidět následující stránku:

Nyní zastavte službu Nginx na hlavním uzlu a otestujte, zda je virtuální IP přepnuta z uzlu 1 na uzel 2.

V hlavním uzlu zastavte službu Nginx pomocí následujícího příkazu:

systemctl stop nginx

Dále se přihlaste k Node2 a ověřte virtuální IP pomocí následujícího příkazu:

IP přidat show

V následujícím výstupu byste měli vidět svou virtuální IP:

1:lo: mtu 65536 stav qdisc noqueue NEZNÁMÝ výchozí skupina qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:0 inet 127.0.0.1/8 rozsah hostitel lo valid_lft navždy preferovaný_lft navždy inet6 ::1/128 rozsah hostitel valid_lft navždy preferovaný_lft navždy2:eth0: mtu 1500 stav qdisc UP/Disk výchozí fq1 00:00:2d:3a:26:37 brd ff:ff:ff:ff:ff:ff inet 45.58.38.55/24 brd 45.58.38.255 rozsah globální noprefixroute eth0 valid_lft navždy preferovaný_lft rozsah navždy inet 1912.16 valid_lft navždy preferovaný_lft navždy inet6 fe80::200:2dff:fe3a:2637/64 odkaz rozsahu valid_lft navždy preferovaný_lft navždy3:eth1: mtu 1500 qdisc link0len UPq_codel výchozí skupina qdisc UP1000 00:0a:3a:26:37 brd ff:ff:ff:ff:ff:ff inet6 fe80::200:aff:fe3a:2637/64 odkaz rozsahu valid_lft navždy preferovaný_lf t navždy

Nyní přejděte na webový server Nginx pomocí adresy URL http://vaše-virtuální-ip . Měli byste vidět stránku Node2:

Závěr

Gratulujeme! úspěšně jste nastavili vysoce dostupný server Nginx s Keepalived. Doufám, že nyní máte dostatek znalostí k nastavení vysoce dostupného serveru Nginx v produkčním prostředí.


Cent OS
  1. Jak nainstalovat a nastavit Varnish Cache 6 s Nginx na CentOS 8

  2. Jak nainstalovat phpMyAdmin s Nginx na CentOS 7 / RHEL 7

  3. Jak nastavit Pure-FTPD s MySQL na CentOS a RedHat

  1. Jak nainstalovat WordPress s Nginx na CentOS 7

  2. Jak nastavit FTP server s VSFTPD na CentOS 7

  3. Jak nainstalovat phpMyAdmin s Nginx na CentOS 7

  1. Jak nastavit FTP server s VSFTPD na CentOS 8

  2. Jak nastavit vysoce dostupný NGINX s KeepAlived v Linuxu

  3. Jak nainstalovat SuiteCRM s Nginx na CentOS 7