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 zur Verwendung von Router-View-Komponenten in Vue

Wenn Sie ein Vue-Projekt entwickeln, müssen Sie h...

So verwenden Sie vue3+TypeScript+vue-router

Inhaltsverzeichnis Einfach zu bedienen Erstellen ...

Implementierung des Whack-a-Mole-Spiels in JavaScript

In diesem Artikel finden Sie den spezifischen Cod...

JavaScript zum Erzielen eines einfachen Drag-Effekts

In diesem Artikel wird der spezifische JavaScript...

So stellen Sie nginx mit Docker bereit und ändern die Konfigurationsdatei

Nginx mit Docker bereitstellen, so einfach ist da...

MySQL-Unterabfragen und gruppierte Abfragen

Inhaltsverzeichnis Überblick Unterabfragen Untera...

Details zur Verwendung der JS-Tag-Syntax

Inhaltsverzeichnis 1. Einführung in Label-Anweisu...

Detaillierte Erklärung des Fischschwarm-Algorithmus im CocosCreator-Spiel

Vorwort Ich wollte vor kurzem CocosCreator lernen...

Globale Aufrufimplementierung von Vue2.x Picker auf mobilen Endgeräten

Inhaltsverzeichnis Was ist die Picker-Komponente ...

Detaillierter Vergleich von Ember.js und Vue.js

Inhaltsverzeichnis Überblick Warum ein Framework ...

Vue-Tutorial zur erweiterten Verwendung dynamischer Komponenten

Inhaltsverzeichnis Grundlegende Beschreibung AST-...

Häufige Fragen und Antworten im Vorstellungsgespräch für Stellen als Webdesigner

1. Was sind die Vorlagen für ASP.NET-Webanwendunge...

Zusammenfassung der Verwendung spezieller Operatoren in MySql

Vorwort Es gibt vier Arten von Operatoren in MySQ...

Probleme bei der Verwendung der Rich-Text-Bearbeitung mit Wangeditor in Vue

wangEditor ist ein webbasierter Rich-Text-Editor,...