Führen Sie die folgenden Schritte aus, um mit Nginx in Kombination mit Keepalived eine hohe Verfügbarkeit zu erreichen.

Führen Sie die folgenden Schritte aus, um mit Nginx in Kombination mit Keepalived eine hohe Verfügbarkeit zu erreichen.

Vorwort

Um die Hochverfügbarkeit des Systems zu gewährleisten, ist grundsätzlich der Aufbau eines Clusters notwendig. Wenn der Host abstürzt, kann unser System weiterhin Dienste bereitstellen. Dasselbe gilt, wenn wir Nginx als Reverse-Proxy und dynamischen und statischen Trennungsserver verwenden. Das Erreichen einer hohen Verfügbarkeit des Systems steht im Fokus unserer Programmierer. Dieser Artikel stellt die Verwendung von nginx und Keepalived zum Erstellen eines Hochverfügbarkeitsclusters im Master-Slave-Modus vor.

Vorkenntnisse

Dieser Artikel geht nicht näher auf die Nginx-Konfiguration ein und setzt voraus, dass die Leser bereits über einige Kenntnisse zu Nginx verfügen.

Einführung von Keepalived

Die Funktion von Keepalived besteht darin, den Status des Servers zu erkennen. Wenn ein Webserver ausfällt oder nicht funktioniert, erkennt Keepalived dies und entfernt den fehlerhaften Server aus dem System und verwendet andere Server, um den Server zu ersetzen. Wenn der Server normal funktioniert, fügt Keepalived den Server automatisch der Servergruppe hinzu. Alle diese Aufgaben werden automatisch und ohne menschliches Eingreifen ausgeführt. Das Einzige, was manuell erledigt werden muss, ist die Reparatur des fehlerhaften Servers.

Systemarchitekturdiagramm

Implementierungsschritte

1. Umgebungskonfiguration

1.1 Installieren Sie nginx

Installieren Sie zugehörige Abhängigkeiten

yum installiere pcre-devel zlib zlib-devel openssl openssl-devel

Hochladen und Dekomprimieren des komprimierten Pakets

tar zxvf nginx-1.12.2.tar.gz

Erstellen Sie ein Verzeichnis und testen Sie die Konfiguration

mkdir -p /usr/local/nginx
./configure --prefix=/usr/local/nginx

Vorkompilieren und installieren

machen && machen installieren

Zugehörige Start- und Stoppbefehle

cd /usr/local/nginx/sbin/
./nginx
./nginx -s stoppen
./nginx -s starten

1.2 Keepalived installieren

yum install -y keepalived

2. Host-Konfiguration

Ändern der Keepalived-Konfigurationsdatei

vim /etc/keepalived/keepalived.conf

Die geänderten Inhalte sind wie folgt

# Neu hinzugefügte Konfiguration vrrp_script chk_http_port {
 Skript "/shell/nginx_check.sh" #Skriptadresse Intervall 2 #Skriptausführungsintervall prüfen Gewicht 2 #Gewicht}

vrrp_instance VI_1 {
 state MASTER #Der Master-Server ist MASTER, der Slave-Server ist BACKUP
 Schnittstelle eth0 #Netzwerkkarte virtual_router_id 51 #Die virtual_router_id der Master- und Backup-Maschinen müssen dieselbe Priorität haben 100 #Unterschiedliche Prioritäten für die Master- und Backup-Maschinen. Die Master-Maschine hat eine höhere Priorität und die Backup-Maschine eine niedrigere. Der Standardwert ist 100
 Anzeige_int 1
 Authentifizierung
  Authentizitätstyp PASS
  Auth_Passwort 1111
 }
 #Virtuelle IP-Adresse virtual_ipaddress {
  192.168.126.88
 }
}

Erstellen einer Skriptdatei

mkdir /shell/nginx_check.sh
vim /shell/nginx_check.sh

Der Inhalt der Skriptdatei ist wie folgt

#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
wenn [ $A -eq 0 ];dann
  /usr/local/nginx/sbin/nginx
  Schlaf 2
  wenn [ `ps -C nginx --no-header |wc -l` -eq 0 ];dann
    alles töten, am Leben bleiben
  fi
fi

3. Slave-Konfiguration

Ändern Sie die Keepalived-Konfigurationsdatei

vrrp_instance VI_1 {
  Status BACKUP #Der Master-Server ist MASTER, der Slave-Server ist BACKUP
  Schnittstelle eth0 #Netzwerkkarte virtual_router_id 51 #Die virtual_router_id der Master- und Backup-Maschinen müssen die gleiche Priorität haben priority 50 #Unterschiedliche Prioritäten für Master- und Backup-Maschinen, die Master-Maschine hat eine höhere Priorität und die Backup-Maschine einen niedrigeren Wert advertisement_int 1
  Authentifizierung
    Authentizitätstyp PASS
    Auth_Passwort 1111
  }
  #Virtuelle IP-Adresse virtual_ipaddress {
    192.168.126.88
  }
}

4. Starten Sie den Dienst

Start-up

Dienst Keepalived Start

Anzeigen der virtuellen IP-Adresse

IP-Adresse
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue status UNBEKANNT 
  Link/Loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  inet 127.0.0.1/8 Bereich Host lo
  inet6 ::1/128 Bereich Host 
    valid_lft für immer preferred_lft für immer
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast Status UP qlen 1000
  Link/Ether 00:0c:29:4f:31:ce brd ff:ff:ff:ff:ff:ff:ff
  inet 192.168.126.100/24 ​​​​brd 192.168.126.255 Bereich global eth0
  inet 192.168.126.88/32 Bereich global eth0
  inet6 fe80::20c:29ff:fe4f:31ce/64 Bereichslink 
    valid_lft für immer preferred_lft für immer

5. Schalten Sie den Firewall-Test aus

Firewall deaktivieren

Dienst iptables stoppen
# Prüfen Sie, ob die Firewall beim Booten automatisch startet chkconfig --list | grep iptables
chkconfig iptables aus

Melden Sie sich bei der virtuellen IP-Adresse an, um

http://192.168.126.88/

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der hochverfügbaren Master-Slave-Konfiguration von nginx+keepalived
  • So kombinieren Sie Keepalived mit Nginx, um eine hohe Verfügbarkeit von Nginx zu erreichen
  • Beispiel für die Implementierung der Hochverfügbarkeit von Keepalived+Nginx
  • Detaillierte Erklärung von Keepalived+Nginx zum Erreichen hoher Verfügbarkeit (HA)
  • Keepalived implementiert Hochverfügbarkeit von nginx
  • Keepalived+Nginx+Tomcat-Beispielcode zur Implementierung eines hochverfügbaren Webclusters

<<:  Detaillierte Erklärung der Fallstricke beim Mischen von npm und cnpm

>>:  MySQL 5.5.56 - Installationsfreie Versionskonfigurationsmethode

Artikel empfehlen

Detaillierte Erklärung der wichtigsten Einzigartigkeit von v-for in Vue

Inhaltsverzeichnis 1. DOM-Diff 2. Fügen Sie Eleme...

Tutorial zur Installation der komprimierten MySQL8-Paketversion unter Win10

1 Laden Sie MySQL8 von der offiziellen Website he...

So wechseln Sie in Linux effizient zwischen Verzeichnissen

Wenn es um den Verzeichniswechsel unter Linux geh...

Vue importiert Echarts, um ein Linienstreudiagramm zu realisieren

In diesem Artikel wird der spezifische Code für d...

Eine einfache Methode zum Ändern der Größe hochgeladener Nginx-Dateien

Originallink: https://vien.tech/article/138 Vorwo...

Das Submit-Ereignis des Formulars reagiert nicht

1. Problembeschreibung <br />Wenn JS verwen...

Ein Artikel zum Erlernen von CSS3-Bildrändern

Mit der CSS3-Eigenschaft „border-image“ können Si...

Detaillierte Erklärung der Funktion und Verwendung der KeepAlive-Komponente in Vue

Vorwort Während des Vorstellungsgesprächs erwähne...

CSS3-Implementierungsbeispiel zum Drehen nur des Hintergrundbildes um 180 Grad

1. Mentale Reise Als ich kürzlich das Cockpit sch...

Verwendung und Ausführungsprozess des HTTP-Moduls im Knoten

Welche Rolle spielt http im Knoten? Die Aufgabe d...