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

Implementierung der Änderung von Konfigurationsdateien im Docker-Container

1. Betreten Sie den Container docker run [Option]...

Der Iframe-Frame setzt den weißen Hintergrund im IE-Browser auf transparent

In letzter Zeit muss ich im Projektverlauf häufig ...

So verwenden Sie das Modul-FS-Dateisystem in Nodejs

Inhaltsverzeichnis Überblick Dateideskriptoren Sy...

Vue-Ereignisparameter $event = Ereigniswertfall

Vorlage <el-table :data="Datenliste"...

Installation und Verwendung der MySQL MyCat-Middleware

1. Was ist mycat Ein vollständig Open Source-Groß...

Detaillierter Prozess zum Dekomprimieren und Installieren von mysql5.7.17 zip

1. Adresse herunterladen https://dev.mysql.com/do...

Detaillierte Erklärung zur Verwendung von Standard in MySQL

NULL- und NOT NULL-Modifikatoren, DEFAULT-Modifik...

Detaillierte Erläuterung des Beispielcodes für das elastische CSS3 Flex-Layout

1. Grundlegende Konzepte //Jeder Container kann a...

10 HTML-Tabellen-bezogene Tags

Tatsächlich werden viele Leute sagen: „Ich habe ge...

Codebeispiel für die Verwendung der MySql COALESCE-Funktion

COALESCE ist eine Funktion, die sich nacheinander...