Vorwort Um den Single Point of Failure zu beheben, müssen wir eine Master-Slave-Hot-Standby-Lösung konfigurieren. Die Anzahl der Server ist begrenzt, daher verwenden wir Docker, um die Installation und Konfiguration zu simulieren. Docker wird in dieser Konfiguration standardmäßig installiert. Konfigurationsumgebung: Centos7 64 Bit Docker-Version: Docker-Version 17.12.1-ce, Build 7390fc6 1. Ziehen Sie das Centos7-Image Docker-Pull Centos:7 2. Erstellen Sie einen Container docker run -it -d --name centos1 -d centos:7 3. Geben Sie den Container centos1 ein docker exec -it centos1 bash 4. Installieren Sie gängige Tools yum updateyum install -y vimyum install -y wgetyum install -y gcc-c++ yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum install -y openssl openssl--develyum install -y popt-develyum install -y initscripts yum install -y net-tools 5. Packen Sie den Container in ein neues Image und erstellen Sie in Zukunft direkt aus dem Image einen Container Docker Commit -a 'cfh' -m 'Centos mit gängigen Tools' Centos1 Centos_base 6. Löschen Sie den zuvor erstellten Centos1-Container, erstellen Sie den Container mit dem Basisimage neu und installieren Sie keepalived+nginx docker rm -f centos1 #Der systemctl-Dienst muss im Container verwendet werden und /usr/sbin/init muss hinzugefügt werden docker run -it --name centos_temp -d --privileged centos_base /usr/sbin/init docker exec -it centos_temp bash Autor: Jianghu Jiujiu Link: https://juejin.im/post/5dc517386fb9a04a9272110b Quelle: Nuggets. Das Urheberrecht liegt beim Autor. Bei kommerzieller Vervielfältigung wenden Sie sich bitte für eine Genehmigung an den Autor. Bei nichtkommerzieller Vervielfältigung geben Sie bitte die Quelle an. 7. Installieren Sie nginx #Verwenden Sie yum, um nginx zu installieren. Sie müssen die Nginx-Bibliothek einbinden. Installieren Sie die Nginx-Bibliothek rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm # Installieren Sie nginx mit dem folgenden Befehl yum install -y nginx #Nginx starten systemctl starte nginx.service #Überprüfen Sie, ob der Start erfolgreich war. Die Begrüßungsoberfläche von nginx wird angezeigt und zeigt an, dass die Installation erfolgreich war. curl 172.17.0.2 8. Installieren Sie Keepalived 1. Laden Sie keepalived 2. Entpacken und installieren: tar -zxvf keepalived-1.2.18.tar.gz -C /usr/local/ 3. Laden Sie das OpenSSL-Plugin herunter: 4. Beginnen Sie mit der Kompilierung von keepalived cd /usr/local/keepalived-1.2.18/ && ./configure --prefix=/usr/local/keepalived 5. Machen Sie es 9. Keepalived als Systemdienst installieren mkdir /etc/keepalivedcp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/Kopieren Sie dann die Keepalived-Skriptdatei: cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ln -s /usr/local/sbin/keepalived /usr/sbin/Sie können es so einstellen, dass es beim Booten startet: chkconfig keepalived on, jetzt haben wir die Installation abgeschlossen! #Wenn beim Start ein Fehler auftritt, führen Sie den folgenden Befehl aus: cd /usr/sbin/ rm -f keepalived cp /usr/local/keepalived/sbin/keepalived /usr/sbin/ #Allgemeine Befehle systemctl daemon-reload lädt neu systemctl enable keepalived.service legt den automatischen Start beim Booten fest systemctl disable keepalived.service bricht den automatischen Start beim Booten ab systemctl start keepalived.service startet systemctl stop keepalived.service stoppt systemctl status keepalived.service prüft den Servicestatus 10. Ändern Sie die Datei /etc/keepalived/keepalived.conf #Backup-Konfigurationsdatei cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.backup rm -f keepalived.conf vim keepalived.conf #Die Konfigurationsdatei lautet wie folgt vrrp_script chk_nginx { Skript "/etc/keepalived/nginx_check.sh" Intervall 2 Gewicht -20 } vrrp_instance VI_1 { Zustand MEISTER Schnittstelle eth0 virtuelle_Router_ID 121 mcast_src_ip 172.17.0.6 Priorität 100 keinPreempt Anzeige_int 1 Authentifizierung Authentizitätstyp PASS Auth_Passwort 1111 } Titel_Skript { chk_nginx } virtuelle_IP-Adresse { 172.17.0.100 } } 11. Fügen Sie eine Heartbeat-Erkennungsdatei hinzu vim nginx_check.sh #Das Folgende ist der Skriptinhalt#!/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 12. Erteilen Sie dem Skript Ausführungsberechtigungen chmod +x nginx_check.sh 13. Start einrichten systemctl aktiviere keepalived.service #Öffnen Sie Keepalived systemctl starte keepalived.service 14. Überprüfen Sie, ob die virtuelle IP erfolgreich ist. Führen Sie den folgenden Befehl auf dem Hostcomputer aus. Wenn die nginx-Begrüßungsoberfläche angezeigt wird, zeigt dies Erfolg an. Locken 172.17.0.100 15. Verpacken Sie den Container centos_temp neu in ein Image und erstellen Sie mit diesem neuen Image zwei weitere Container, um einen Hot-Standby-Effekt zu erzielen Docker-Commit -a 'cfh' -m 'Centos mit Keepalived Nginx' Centos_temp Centos_kn 16. Alle Container löschen docker rm -f `docker ps -a -q` 17. Erstellen Sie den Hauptservercontainer mit dem centos_kn-Image docker run --privileged -tid --name centos_master --restart=always centos_kn /usr/sbin/init docker exec -it centos_master bash 18. Ändern Sie die Nginx-Willkommensseite in centos_master. vim /usr/share/nginx/html/index.html 19. Erstellen Sie einen Slave-Server-Container docker run --privileged -tid --name centos_slave --restart=immer centos_kn /usr/sbin/init docker exec -it centos_slave bash #Ändern Sie die Konfigurationsdatei keepalived.conf, vor allem die Anpassung der Status- und Prioritätsparameter. Der Prioritätswert des Masterknotens muss größer sein als der des Slaveknotens. vrrp_script chk_nginx { Skript "/etc/keepalived/nginx_check.sh" Intervall 2 Gewicht -20 } vrrp_instance VI_1 { Zustand SLAVE Schnittstelle eth0 virtuelle_Router_ID 121 mcast_src_ip 172.17.0.6 Priorität 80 keinPreempt Anzeige_int 1 Authentifizierung Authentizitätstyp PASS Auth_Passwort 1111 } Titel_Skript { chk_nginx } virtuelle_IP-Adresse { 172.17.0.100 } } 20. Nach Änderung neu laden systemctl daemon-reload systemctl Neustart keepalived.service 21. Ändern Sie die Willkommensseite von nginx (wenn nginx nicht gestartet ist, führen Sie „systemctl start nginx.service“ aus). vim /usr/share/nginx/html/index.html 22. Prüfung A> Führen Sie den folgenden Befehlstest auf dem Host, centos_master bzw. centos_slave aus. Wenn die Begrüßungsseite des Masters angezeigt wird, bedeutet dies, dass die Konfiguration erfolgreich ist 1/3 Locken 172.17.0.100 B> Stoppen Sie zu diesem Zeitpunkt den Container centos_master (docker stop centos_master), behalten Sie den Container centos_slave bei und führen Sie den folgenden Befehl aus. Wenn Sie zur Slave-Seite wechseln, bedeutet dies, dass die Keepalived-Konfiguration erfolgreich ist 2/3 Locken 172.17.0.100 C> Starten Sie den Container centos_master neu und führen Sie den folgenden Befehl aus, um zu prüfen, ob der Wechsel von Slave zu Master erfolgt. Wenn der Wechsel erfolgreich ist, bedeutet dies, dass unsere Konfiguration erfolgreich war. Locken 172.17.0.100 Hinweis: Während des Tests startete nginx nach dem Neustart des Containers nicht. Sie müssen den Container aufrufen und starten. Andernfalls können Sie nicht auf die Masterseite zugreifen, aber Sie können sie anpingen. Führen Sie den folgenden Befehl aus, um nginx so zu konfigurieren, dass es zufällig gestartet wird, sodass Sie nginx nicht bei jedem Neustart des Containers manuell starten müssen chkconfig nginx ein Das Obige ist der gesamte Konfigurationsprozess. Ich hoffe, es wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützt. Das könnte Sie auch interessieren:
|
<<: Vue implementiert einen einfachen Bildwechseleffekt
>>: Detaillierte Erklärung zur Verwendung der Click-to-Switch-Bildkomponente im Vue-Kartenstil
In Front-End-Projekten ist das Hochladen von Anhä...
Ich bin während der Entwicklung auf ein solches P...
1. Fügen Sie dem HTML-Header das Viewport-Tag hin...
Hintergrund Der Domänenname der Schnittstelle ist...
1. Holen Sie sich den tatsächlichen Pfad des aktu...
Wir leben in einer visuellen Welt und sind von vi...
HTML besteht aus Tags und Attributen, die zusamme...
Jeder, der schon einmal Windows Remote Desktop zu...
mysqldump-Tool-Sicherung Sichern Sie die gesamte ...
1. Server-Setup Das Remote-Repository unterscheid...
Vorwort: In Vue können Props verwendet werden, um...
Aufgrund der Einschränkung der CPU-Berechtigungen...
Inhaltsverzeichnis Einführung Anweisungen Tatsäch...
Inhaltsverzeichnis 1. Einleitung 2. Verwenden Sie...
XML/HTML-CodeInhalt in die Zwischenablage kopiere...