Hochverfügbarkeit · 7 min read · Dec 06, 2025
So richten Sie Nginx Hochverfügbarkeit mit Pacemaker und Corosync auf CentOS 7 ein
In diesem Tutorial führen wir Sie Schritt für Schritt durch die Erstellung eines Hochverfügbarkeitsclusters für den Nginx-Webserver mit Pacemaker, Corosync und Pcsd. Wir werden den aktiven-passiven Cluster oder Failover-Cluster Nginx-Webserver mit Pacemaker auf einem CentOS 7-System erstellen.
Pacemaker ist eine Open-Source-Cluster-Manager-Software, die maximale Hochverfügbarkeit Ihrer Dienste erreicht. Es ist ein fortschrittlicher und skalierbarer HA-Cluster-Manager, der von ClusterLabs vertrieben wird.
Corosync Cluster Engine ist ein Open-Source-Projekt, das aus dem OpenAIS-Projekt unter der neuen BSD-Lizenz abgeleitet wurde. Es ist ein Gruppennachrichtensystem mit zusätzlichen Funktionen zur Implementierung von Hochverfügbarkeit innerhalb von Anwendungen.
Es gibt einige Anwendungen für die Pacemaker-Schnittstellen. Pcsd ist eine der Pacemaker-Befehlszeilenschnittstellen und GUIs zur Verwaltung von Pacemaker. Wir können mit dem pcsd-Befehl pcs einen neuen Knoten zum Cluster erstellen, konfigurieren oder hinzufügen.
Voraussetzungen
- 2 oder mehr CentOS 7 Server - web01 10.0.15.10
- web02 10.0.15.11
- web03 10.0.15.12
- Floating-IP-Adresse 10.0.15.15
- Root-Rechte
Was wir tun werden:
- Hostdatei zuordnen
- Epel-Repository und Nginx installieren
- Pacemaker, Corosync und Pcsd installieren und konfigurieren
- Cluster erstellen und konfigurieren
- STONITH deaktivieren und die Quorum-Politik ignorieren
- Die Floating-IP und Ressourcen hinzufügen
- Regeln zum Cluster hinzufügen
- Firewalld konfigurieren
- Die Einrichtung testen
Schritt 1 - Hostdatei zuordnen
Hinweis: Führen Sie die Schritte 1 - 3 auf allen Servern web01, web02 und web03 aus.
Der erste Schritt, den wir tun müssen, besteht darin, die Hostdatei auf jedem Server zu bearbeiten, um die Hostnamen aller Server zuzuordnen. Wir haben die Server ‘web01’, ‘web02’ und ‘web03’, melden Sie sich bei jedem Server mit dem SSH-Konto an.
ssh root@web[01,02,03]Bearbeiten Sie die Datei ‘/etc/hosts’ mit vim.
vim /etc/hostsFügen Sie dort die folgende Konfiguration ein.
10.0.15.10 web01
10.0.15.11 web02
10.0.15.12 web03Speichern und beenden.
Testen Sie nun die Zuordnungs-Konfiguration der Hosts.
ping -c 3 web01
ping -c 3 web02
ping -c 3 web03Stellen Sie sicher, dass ‘web01’, ‘web02’ und ‘web03’ den richtigen IP-Adressen zugeordnet sind.

Schritt 2 - Epel-Repository und Nginx installieren
In diesem Schritt installieren wir das Epel-Repository und dann den Nginx-Webserver. Das EPEL- oder Extra Packages for Enterprise Linux-Repository wird benötigt, um Nginx-Pakete zu installieren.
Installieren Sie das EPEL-Repository mit dem folgenden yum-Befehl.
yum -y install epel-releaseInstallieren Sie nun den Nginx-Webserver aus dem EPEL-Repository.
yum -y install nginxNachdem die Installation abgeschlossen ist, ändern Sie die Standardindex.html-Seite auf jedem Server in eine neue Seite.
#Befehl auf 'web01' ausführen
echo 'web01 - hakase-labs
' > /usr/share/nginx/html/index.html
#Befehl auf 'web02' ausführen
echo 'web02 - hakase-labs
' > /usr/share/nginx/html/index.html
#Befehl auf 'web03' ausführen
echo 'web03 - hakase-labs
' > /usr/share/nginx/html/index.html
EPEL-Repository und Nginx-Webserver sind jetzt auf dem System installiert.
Schritt 3 - Pacemaker, Corosync und Pcsd installieren und konfigurieren
Pacemaker, Corosync und Pcsd sind im Standard-System-Repository verfügbar. Sie können also alle aus dem CentOS-Repository mit dem folgenden yum-Befehl installiert werden.
yum -y install corosync pacemaker pcsNachdem die Installation abgeschlossen ist, aktivieren Sie alle Dienste, damit sie beim Systemstart automatisch gestartet werden, indem Sie die folgenden systemctl-Befehle verwenden.
systemctl enable pcsd
systemctl enable corosync
systemctl enable pacemakerStarten Sie nun die pcsd Pacemaker-Befehlszeilenschnittstelle auf allen Servern.
systemctl start pcsdAls Nächstes erstellen Sie ein neues Passwort für den Benutzer ‘hacluster’ und verwenden dasselbe Passwort für alle Server. Dieser Benutzer wurde während der Softwareinstallation automatisch erstellt.
So konfigurieren Sie ein Passwort für den ‘hacluster‘-Benutzer.
passwd hacluster
Neues Passwort eingeben:Die Hochverfügbarkeitssoftware-Stack Pacemaker, Corosync und Pcsd ist auf dem System installiert.

Schritt 4 - Cluster erstellen und konfigurieren
Hinweis: Führen Sie die Schritte 4 - 7 nur auf ‘web01’ aus.
In diesem Schritt werden wir einen neuen Cluster mit 3 CentOS-Servern erstellen. Dann konfigurieren wir die Floating-IP-Adresse und fügen neue Nginx-Ressourcen hinzu.
Um den Cluster zu erstellen, müssen wir alle Server mit dem pcs-Befehl und dem Benutzer hacluster autorisieren.
Autorisieren Sie alle Server mit dem pcs-Befehl und dem Benutzer hacluster und dem Passwort.
pcs cluster auth web01 web02 web03
Benutzername: hacluster
Passwort: aqwe123@
Jetzt ist es an der Zeit, den Cluster einzurichten. Definieren Sie den Clusternamen und alle Server, die Teil des Clusters sein werden.
pcs cluster setup --name hakase_cluster web01 web02 web03Starten Sie nun alle Cluster-Dienste und aktivieren Sie sie ebenfalls.
pcs cluster start --all
pcs cluster enable --all
Überprüfen Sie als Nächstes den Clusterstatus.
pcs status cluster
Schritt 5 - STONITH deaktivieren und Quorum-Politik ignorieren
Da wir das Fencing-Gerät nicht verwenden, werden wir STONITH deaktivieren. STONITH oder Shoot The Other Node In The Head ist die Fencing-Implementierung auf Pacemaker. Wenn Sie in der Produktion sind, ist es besser, STONITH zu aktivieren.
Deaktivieren Sie STONITH mit dem folgenden pcs-Befehl.
pcs property set stonith-enabled=falseAls Nächstes ignorieren Sie die Quorum-Politik.
pcs property set no-quorum-policy=ignoreÜberprüfen Sie die Eigenschaftenliste und stellen Sie sicher, dass STONITH und die Quorum-Politik deaktiviert sind.
pcs property list
STONITH und die Quorum-Politik sind deaktiviert.
Schritt 6 - Floating-IP und Ressourcen hinzufügen
Die Floating-IP ist die IP-Adresse, die automatisch von einem Server auf einen anderen Server im selben Rechenzentrum migriert/bewegt werden kann. Und wir haben bereits die Floating-IP-Adresse für die Pacemaker-Hochverfügbarkeit auf ‘10.0.15.15’ definiert. Jetzt möchten wir zwei Ressourcen hinzufügen, die Floating-IP-Adresse mit dem Namen ‘virtual_ip’ und eine neue Ressource für den Nginx-Webserver mit dem Namen ‘webserver’.
Fügen Sie die neue Ressource Floating-IP-Adresse ‘virtual_ip’ mit dem pcs-Befehl wie unten gezeigt hinzu.
pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=10.0.15.15 cidr_netmask=32 op monitor interval=30sFügen Sie als Nächstes eine neue Ressource für den Nginx ‘webserver’ hinzu.
pcs resource create webserver ocf:heartbeat:nginx configfile=/etc/nginx/nginx.conf op monitor timeout="5s" interval="5s"Stellen Sie sicher, dass Sie kein Fehlergebnis erhalten, und überprüfen Sie dann die verfügbaren Ressourcen.
pcs status resourcesSie werden zwei Ressourcen ‘virtual_ip’ und ‘webserver’ sehen. Neue Ressourcen für die Floating-IP und den Nginx-Webserver wurden hinzugefügt.
Schritt 7 - Einschränkungsregeln zum Cluster hinzufügen
In diesem Schritt werden wir Hochverfügbarkeitsregeln einrichten und die Ressourcenbeschränkung mit der pcs-Befehlszeilenschnittstelle einrichten.
Setzen Sie die Kollokationsbeschränkung für die Ressourcen webserver und virtual_ip mit dem Wert ‘INFINITY’. Richten Sie auch die Ressourcen webserver und virtual_ip auf allen Serverknoten gleich ein.
pcs constraint colocation add webserver virtual_ip INFINITYStellen Sie sicher, dass die Ressourcen ‘virtual_ip’ und ‘webserver’ immer auf denselben Knotenservern sind.
pcs constraint order virtual_ip then the webserverStoppen Sie als Nächstes den Cluster und starten Sie ihn dann erneut.
pcs cluster stop --all
pcs cluster start --all
Überprüfen Sie nun erneut die Ressourcen, und Sie werden ihren Status als ‘Gestart’ auf demselben Server ‘web01’ sehen.
pcs status resourcesDie Ressourcen virtual_ip und webserver wurden auf demselben Server/Knoten ‘web01’ gestartet.
Schritt 8 - Firewalld konfigurieren
Der HA-Cluster wird unter der Firewall-Konfiguration firewalld ausgeführt - installieren Sie es, wenn Sie das Paket nicht haben.
yum -y install firewalldStarten Sie firewalld und aktivieren Sie es, damit es bei jedem Systemstart automatisch ausgeführt wird, indem Sie die folgenden systemctl-Befehle verwenden.
systemctl start firewalld
systemctl enable firewalldFügen Sie als Nächstes neue Dienste zur firewalld mit den firewall-cmd-Befehlen hinzu - fügen Sie den Dienst für Hochverfügbarkeit, HTTP und HTTPS für Nginx hinzu.
firewall-cmd --permanent --add-service=high-availability
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=httpsLaden Sie die Firewall-Konfiguration neu und überprüfen Sie alle Dienste.
firewall-cmd --reload
firewall-cmd --list-allStellen Sie sicher, dass der HA-Dienst mit HTTP und HTTPS in der Liste vorhanden ist.

Schritt 9 - Testen
In diesem Schritt werden wir einige Tests für den Cluster durchführen. Testen Sie den Knotenstatus (‘Online’ oder ‘Offline’), testen Sie die Corosync-Mitglieder und den Status und testen Sie dann die Hochverfügbarkeit des Nginx-Webservers, indem Sie die Floating-IP-Adresse aufrufen.
Testen Sie den Knotenstatus mit dem folgenden Befehl.
pcs status nodes
Alle Knoten sind ‘Online’.
Testen Sie die Corosync-Mitglieder.
corosync-cmapctl | grep membersSie erhalten die IP-Adressen der Corosync-Mitglieder.

Überprüfen Sie die Corosync-Mitglieder, und Sie werden das Ergebnis wie unten gezeigt sehen.
pcs status corosync
Und schließlich überprüfen Sie die Hochverfügbarkeit des Webservers. Öffnen Sie Ihren Webbrowser und geben Sie die Floating-IP-Adresse ‘10.0.15.15’ ein.
Sie werden die Webseite vom Server ‘web01’ sehen.
Stoppen Sie als Nächstes den Cluster auf dem Server ‘web01’ mit dem folgenden Befehl.
pcs cluster stop web01Überprüfen Sie die Seite erneut, und Sie erhalten die Seite vom Server ‘web02’ wie unten.
Zusätzlich:
Überprüfen Sie den Clusterstatus mit dem folgenden Befehl.
pcs statusUnd Sie erhalten das Ergebnis wie unten gezeigt.

Die Einrichtung der Hochverfügbarkeit des Nginx-Webservers mit Pacemaker, Corosync und Pcsd auf dem CentOS 7-Server wurde erfolgreich abgeschlossen.
Referenz
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.