GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So richten Sie hochverfügbares NGINX mit KeepAlived unter CentOS 8 ein

Nginx ist ein kostenloser Open-Source-Server und einer der beliebtesten Webserver weltweit. Es kann auch als Reverse-Proxy, Load Balancer und HTTP-Cache verwendet werden. Die hohe Verfügbarkeit ermöglicht es einer Anwendung, im Falle eines Ausfalls Arbeit auf ein anderes System umzuleiten. Es stehen verschiedene Technologien zur Verfügung, um ein hochverfügbares System aufzubauen.

Keepalived ist ein System-Daemon, der Dienste oder Systeme kontinuierlich überwacht und im Fehlerfall eine hohe Verfügbarkeit erreicht. Wenn ein Knoten ausgefallen ist, bedient der zweite Knoten die Ressourcen.

In diesem Tutorial zeige ich Ihnen, wie Sie einen hochverfügbaren Nginx-Webserver mit KeepAlived auf CentOS 8 einrichten.

Voraussetzungen

  • Zwei Server mit CentOS 8, einer für den Master-Knoten und einer für den Backup-Knoten.
  • Auf Ihrem Server ist ein Root-Passwort konfiguriert.

Nginx auf beiden Knoten installieren

Zuerst müssen Sie das Nginx-Paket auf beiden Knoten installieren. Sie können es mit dem folgenden Befehl installieren:

dnf install nginx -y

Nachdem Nginx auf beiden Knoten installiert wurde, starten Sie den Nginx-Dienst und ermöglichen Sie ihm, beim Systemneustart zu starten:

systemctl start nginx
systemctl enable nginx

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

-Datei auf beiden Knoten erstellen

Als Nächstes müssen Sie auf beiden Knoten eine benutzerdefinierte index.html-Datei erstellen, um jeden Knoten zu identifizieren.

Erstellen Sie auf dem ersten Knoten eine index.html-Datei mit dem folgenden Befehl:

echo "

Das ist mein erster NGINX-Webserverknoten

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

Erstellen Sie auf dem zweiten Knoten eine index.html-Datei mit dem folgenden Befehl:

echo "

Dies ist mein zweiter NGINX-Webserverknoten

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

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Installieren und konfigurieren Sie Keepalived

Als nächstes müssen Sie Keepalived auf beiden Knoten installieren. Standardmäßig ist das Keepalived-Paket im CentOS 8-Standard-Repository verfügbar. Sie können es installieren, indem Sie den folgenden Befehl ausführen:

dnf install keepalived -y

Sobald das Keepalived-Paket auf beiden Knoten installiert ist, müssen Sie die Keepalived-Standardkonfigurationsdatei auf beiden Knoten bearbeiten.

Bearbeiten Sie auf dem ersten Knoten die Datei keepalived.conf:

nano /etc/keepalived/keepalived.conf

Entfernen Sie die Standardinhalte und fügen Sie die folgenden Inhalte hinzu:

global_defs { # Keepalived-Prozesskennung router_id nginx}# Skript zum Prüfen, ob Nginx läuft oder nicht vrrp_script check_nginx { script "/bin/check_nginx.sh" interval 2 weight 50}# Virtuelle Schnittstelle - Die Priorität gibt die Reihenfolge an, in der die Zugewiesene Schnittstelle zur Übernahme in einem Failovervrrp_instance VI_01 { state MASTER interface eth0 virtual_router_id 151 priority 110 # Die virtuelle IP-Adresse, die von den beiden NGINX-Webservern geteilt wird, die virtual_ipaddress { 192.168.1.10/24 } track_script { check_nginx } authentication { auth_type AH auth_pass Geheimnis }}

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Bearbeiten Sie auf dem zweiten Knoten die Datei keepalived.conf:

nano /etc/keepalived/keepalived.conf

Entfernen Sie die Standardinhalte und fügen Sie die folgenden Inhalte hinzu:

global_defs { # Keepalived-Prozesskennung router_id nginx}# Skript zum Prüfen, ob Nginx läuft oder nicht vrrp_script check_nginx { script "/bin/check_nginx.sh" interval 2 weight 50}# Virtuelle Schnittstelle - Die Priorität gibt die Reihenfolge an, in der die Zugewiesene Schnittstelle zur Übernahme bei einem Failover vrrp_instance VI_01 { state BACKUP interface eth0 virtual_router_id 151 priority 100 # Die virtuelle IP-Adresse, die von den beiden NGINX-Webservern geteilt wird, die virtual_ipaddress { 192.168.1.10/24 } track_script { check_nginx } authentication { auth_type AH auth_pass Geheimnis }}

Speichern und schließen Sie die Datei, dann müssen Sie ein Skript erstellen, um zu überprüfen, ob der Nginx-Dienst ausgeführt wird oder nicht. Sie können es mit dem folgenden Befehl erstellen:

Hinweis :Habe gerade MASTER durch BACKUP und 110 durch 100 in der obigen Konfigurationsdatei ersetzt.

nano /bin/check_nginx.sh

Fügen Sie die folgenden Zeilen hinzu:

#!/bin/shif [ -z "`pidof nginx`" ]; dann 1fi verlassen

Speichern und schließen Sie die Datei und legen Sie dann mit dem folgenden Befehl die richtige Berechtigung fest:

chmod 755 /bin/check_nginx.sh

Starten Sie schließlich den Keepalived-Dienst und aktivieren Sie ihn mit dem folgenden Befehl, damit er beim Systemneustart gestartet wird:

systemctl start keepalived
systemctl enable keepalived

Sie können den Status des Keepalive-Dienstes auch mit dem folgenden Befehl überprüfen:

systemctl status keepalived

Sie sollten die folgende Ausgabe erhalten:

? keepalived.service - LVS- und VRRP-Monitor für hohe Verfügbarkeit Geladen:geladen (/usr/lib/systemd/system/keepalived.service; deaktiviert; Herstellervoreinstellung:deaktiviert) Aktiv:aktiv (läuft) seit Do 2021-04-08 04:24 :22 EDT; Vor 5s Prozess:3141 ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS) Haupt-PID:3142 (keepalived) Tasks:2 (limit:12524) Speicher:2.1M CGroup:/system. Slice/keepalived.service ??3142 /usr/sbin/keepalived -D ??3143 /usr/sbin/keepalived -DApr 08 04:24:22 node1 Keepalived_vrrp[3143]:(VI_01) Ändern der effektiven Priorität von 110 auf 160Apr 08 04:24:25 node1 Keepalived_vrrp[3143]:(VI_01) Zeitüberschreitung für Ankündigungen empfangenApr 08 04:24:25 node1 Keepalived_vrrp[3143]:(VI_01) Entering MASTER STATEApr 08 04:24:25 node1 Keepalived_vrrp[3143]:(VI_01) Einstellen von VIPs.Apr 08 04:24:25 node1 Keepalived_vrrp[3143]:Senden von gratuitous ARP auf eth0 für 192.168.1.10Apr 08 04:24:25 node1 Keepalived_vrrp[3143]:(VI_01) Senden/Einreihen von gratuitous ARPs auf eth0 für 192.168.1.10 .1.10Apr 08 04:24:25 node1 Keepalived_vrrp[3143]:Senden von gratuitous ARP auf eth0 für 192.168.1.10Apr 08 04:24:25 node1 Keepalived_vrrp[3143]:Senden von gratuitous ARP auf eth0 für 192.168.1 .10Apr 08 04:24:25 node1 Keepalived_vrrp[3143]:Senden von gratuitous ARP auf eth0 für 192.168.1.10Apr 08 04:24:25 node1 Keepalived_vrrp[3143]:Senden von gratuitous ARP auf eth0 für 192.168.1.10

Sie können auch den Status der virtuellen IP-Adresse auf dem Master-Knoten mit dem folgenden Befehl überprüfen:

ip add show

Sie sollten die virtuelle IP-Adresse 192.168.1.10 in der folgenden Ausgabe sehen:

1:lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 Geltungsbereich Host lo valid_lft für immer Preferred_lft für immer inet6 ::1/128 Geltungsbereich Host valid_lft für immer Preferred_lft für immer2:eth0: mtu 1500 qdisc fq_codel state UP Gruppe Standard qlen 1000 Link/Ether 00:00:2d:3a:20:9b brd ff:ff:ff:ff:ff:ff inet 45.58.32.155/24 brd 45.58.32.255 Geltungsbereich global noprefixroute eth0 gültig_lft für immer bevorzugt_lft für immer inet 192.168.1.10/24 Geltungsbereich global eth0 valid_lft für immer Preferred_lft für immer inet6 fe80::200:2dff:fe3a:209b/64 Bereich Link valid_lft für immer Preferred_lft für immer3:eth1: mtu 1500 qdisc fq_codel state UP Gruppe Standard qlen 1000 Link/ether 00:00:0a:3a:20:9b brd ff:ff:ff:ff:ff:ff inet6 fe80::200:aff:fe3a:209b/64 Geltungsbereich Link gültig_lft für immer bevorzugt_l für immer

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Firewall auf beiden Knoten konfigurieren

Als nächstes müssen Sie Port 80 zulassen und VRRP auf beiden Knoten zulassen. Sie können dies mit dem folgenden Befehl tun:

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

Als nächstes laden Sie die Firewall neu, um die Änderungen zu übernehmen:

firewall-cmd – neu laden

Keepalived bestätigen

An dieser Stelle sind Nginx und Keepalived installiert und konfiguriert. Es ist an der Zeit zu testen, ob die Hochverfügbarkeit von Nginx funktioniert oder nicht.

Öffnen Sie Ihren Webbrowser und greifen Sie auf die URL http://your-virtual-ip zu . Sie sollten die folgende Seite sehen:

Stoppen Sie nun den Nginx-Dienst auf dem Master-Knoten und testen Sie, ob die virtuelle IP von Knoten 1 auf Knoten 2 umgeschaltet wird.

Stoppen Sie auf dem Master-Knoten den Nginx-Dienst mit dem folgenden Befehl:

systemctl stop nginx

Melden Sie sich als Nächstes bei Node2 an und überprüfen Sie die virtuelle IP mit dem folgenden Befehl:

ip add show

Sie sollten Ihre virtuelle IP in der folgenden Ausgabe sehen:

1:lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 Geltungsbereich Host lo valid_lft für immer Preferred_lft für immer inet6 ::1/128 Geltungsbereich Host valid_lft für immer Preferred_lft für immer2:eth0: mtu 1500 qdisc fq_codel state UP Gruppe Standard qlen 1000 Link/Ether 00:00:2d:3a:26:37 brd ff:ff:ff:ff:ff:ff inet 45.58.38.55/24 brd 45.58.38.255 Geltungsbereich global noprefixroute eth0 gültig_lft für immer bevorzugt_lft für immer inet 192.168.1.10/24 Geltungsbereich global eth0 valid_lft für immer Preferred_lft für immer inet6 fe80::200:2dff:fe3a:2637/64 Bereich Link valid_lft für immer Preferred_lft für immer3:eth1: mtu 1500 qdisc fq_codel state UP Gruppe Standard qlen 1000 Link/ether 00:00:0a:3a:26:37 brd ff:ff:ff:ff:ff:ff inet6 fe80::200:aff:fe3a:2637/64 Geltungsbereich Link gültig_lft für immer bevorzugt_lf t für immer

Greifen Sie jetzt über die URL http://your-virtual-ip auf Ihren Nginx-Webserver zu . Sie sollten die Node2-Seite sehen:

Schlussfolgerung

Herzliche Glückwünsche! Sie haben mit Keepalived erfolgreich einen hochverfügbaren Nginx-Server eingerichtet. Ich hoffe, Sie haben jetzt genug Wissen, um einen hochverfügbaren Nginx-Server in einer Produktionsumgebung einzurichten.


Cent OS
  1. So installieren Sie WordPress mit Nginx unter CentOS 7

  2. So richten Sie einen FTP-Server mit VSFTPD unter CentOS 7 ein

  3. So installieren und konfigurieren Sie Varnish Cache 6 mit Nginx unter CentOS 8

  4. So installieren Sie phpMyAdmin mit Nginx unter CentOS 7 / RHEL 7

  5. So richten Sie Pure-FTPD mit MySQL unter CentOS und RedHat ein

So installieren Sie phpMyAdmin mit Nginx unter CentOS 8 / RHEL 8

So installieren Sie Nginx mit ngx_pagespeed unter CentOS

So installieren Sie Nginx mit PHP-FastCGI unter CentOS 6

So installieren Sie Magento mit Nginx unter CentOS 7

So installieren Sie Laravel mit Nginx unter CentOS 8

So beschleunigen Sie Nginx mit Varnish Cache unter CentOS 7