1. Einführung in Keepalived Keepalived wurde ursprünglich für die LVS-Lastausgleichssoftware entwickelt, um den Status jedes Serviceknotens im LVS-Clustersystem zu verwalten und zu überwachen. Später wurde die VRRP-Funktion hinzugefügt, um eine hohe Verfügbarkeit zu erreichen. Neben der Verwaltung von LVS-Software kann keepalived auch Hochverfügbarkeitslösungen für andere Dienste unterstützen. keepalived erreicht hohe Verfügbarkeit durch das VRRP-Protokoll. VRRP (Virtual Router Redundancy Protocol) virtuelles Routing-Redundanzprotokoll. Der Zweck von VRRP besteht darin, das Single Point Failure-Problem des statischen Routings zu lösen. Es kann sicherstellen, dass das gesamte Netzwerk ohne Unterbrechung ausgeführt werden kann, wenn einzelne Knoten ausfallen. 2. Keepalived-Hochverfügbarkeits-Failover-Prinzip Das Failover zwischen Keepalived-Hochverfügbarkeitsdiensten wird durch VRRP erreicht. Wenn der Keepalived-Dienst funktioniert, sendet der Haupt-Masterknoten kontinuierlich (Multicast-)Heartbeat-Nachrichten an den Backup-Knoten, um dem Backup-Knoten mitzuteilen, dass er noch aktiv ist. Wenn der Primärknoten ausfällt, kann er keine Heartbeat-Nachrichten an den Standby-Knoten senden. Wenn der Standby-Knoten den Heartbeat vom Primärknoten nicht mehr erkennen kann. Es ruft sein eigenes Übernahmeprogramm auf, um die IP-Ressourcen und Dienste des Hauptknotens zu übernehmen. Wenn der Masterknoten wiederhergestellt ist, gibt der Standbyknoten die IP-Ressourcen und -Dienste frei, die er beim Ausfall des Masterknotens übernommen hat, und kehrt zu seiner ursprünglichen Standby-Rolle zurück. 3. Installieren Sie nginx 3.1. Masterknoten (192.168.80.22) 3.1.1. Kompilierungstools und Bibliotheksdateien installieren yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 3.1.2. Installieren Sie pcre #Geben Sie das Verzeichnis cd /usr/local/develop/anginx ein #Laden Sie die Installationsdatei hoch und entpacken Sie sie tar -zxvf pcre-8.38.tar.gz #Geben Sie das Installationsverzeichnis ein cd pcre-8.38 # Konfiguration prüfen ./configure #Kompilieren und installieren Sie make && make install # Zeigen Sie die pcre-Version an pcre-config --version 3.1.3. Installieren Sie nginx #Geben Sie das Verzeichnis cd /usr/local/develop/anginx ein #Laden Sie die Installationsdatei hoch und entpacken Sie sie tar -zxvf nginx-1.8.1.tar.gz #Geben Sie das Installationsverzeichnis ein cd nginx-1.8.1 # Konfiguration prüfen ./configure --prefix=/usr/local/develop/anginx/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/develop/anginx/pcre-8.38 #Kompilieren und installieren Sie make && make install # Zeigen Sie die Nginx-Version an /usr/local/develop/anginx/webserver/nginx/sbin/nginx -v -------------------------------------------------------- [root@hadoop02 Webserver]# /usr/local/develop/anginx/webserver/nginx/sbin/nginx -v Nginx-Version: nginx/1.8.1 #nginx konfigurieren (überprüfen) /usr/local/develop/anginx/webserver/nginx/sbin/nginx -t #nginx-Verwaltungsbefehl /usr/local/develop/anginx/webserver/nginx/sbin/nginx # Starten Sie Nginx /usr/local/develop/anginx/webserver/nginx/sbin/nginx -s stop # Nginx stoppen /usr/local/develop/anginx/webserver/nginx/sbin/nginx -s reload # Konfigurationsdatei neu laden /usr/local/develop/anginx/webserver/nginx/sbin/nginx -s reopen # Nginx neu starten 3.1.4.nginx Grundkonfiguration vi nginx.conf #Benutzer niemand; Arbeiterprozesse 1; #error_log Protokolle/Fehler.log; #error_log Protokolle/error.log Hinweis; #error_log Protokolle/error.log-Info; pid-Protokolle/nginx.pid; Ereignisse { Arbeiterverbindungen 1024; } http { mime.types einschließen; Standardtyp Anwendung/Oktett-Stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log Protokolle/access.log Haupt; sendfile an; #tcp_nopush ein; #keepalive_timeout 0; KeepAlive-Timeout 65; #gzip ein; #Tomcat-Liste hinzufügen, die echten Anwendungsserver werden hier upstream tomcat_pool platziert{ #Server-Tomcat-Adresse: Das Gewicht der Portnummer gibt das Gewicht an. Je höher das Gewicht, desto größer die Wahrscheinlichkeit der Zuweisung. Server 192.168.80.22:8080 Gewicht=4 max_fails=2 Fail_Timeout=30s; Server 192.168.80.22:8081 Gewicht=4, max_fails=2, Fail_Timeout=30 s; } Server { hören Sie 80; Servername Tomcat-Pool; #Zeichensatz koi8-r; #access_log Protokolle/Host.access.log Haupt; Standort / { #Wurzel-HTML; #index index.html index.htm; proxy_pass http://tomcat_pool; #direkt an Tomcat, um proxy_set_header Host $host zu verarbeiten; Proxy_Set_Header X-Real-IP $Remote_Addr; proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for; } #Fehlerseite 404 /404.html; # Server-Fehlerseiten auf die statische Seite /50x.html umleiten # Fehlerseite 500 502 503 504 /50x.html; Standort = /50x.html { Stamm-HTML; } } 3.2. Standby-Knoten (192.168.80.21) Hinweis: Die Installationsmethode ist dieselbe wie die des Nginx-Masterknotens. 4. Installieren Sie Keepalived 4.1. Masterknoten (192.168.80.22) #Installieren Sie Keepalived yum installiere keepalived -y #Starten Sie den Keepalived-Dienst /etc/init.d/keepalived start ---------------------------------------------- [root@hadoop02 anginx]# /etc/init.d/keepalived start Keepalived wird gestartet: [ OK ] [root@hadoop02 anginx]# ps -ef |grep keepalived root 15723 1 0 00:59 ? 00:00:00 /usr/sbin/keepalived -D root 15724 15723 0 00:59 ? 00:00:00 /usr/sbin/keepalived -D root 15725 15723 0 00:59 ? 00:00:00 /usr/sbin/keepalived -D root 15731 15622 0 00:59 Punkte/1 00:00:00 grep keepalived [root@hadoop02 anginx]# #Stellen Sie das System so ein, dass es automatisch startet echo "/etc/init.d/keepalived start" >>/etc/rc.local #Beenden Sie den Keepalived-Dienst /etc/init.d/keepalived stop #Bearbeiten Sie die Keepalived-Konfigurationsdatei vi /etc/keepalived/keepalived.conf ----------------------------------------------------------- ! Konfigurationsdatei für Keepalived global_defs { Benachrichtigungs-E-Mail { [email protected] [email protected] [email protected] } Benachrichtigungs-E-Mail von [email protected] SMTP-Server 192.168.200.1 smtp_connect_timeout 30 Router-ID lb01 } vrrp_instance VI_1 { Zustand MEISTER Schnittstelle eth1 virtuelle_Router_ID 55 Priorität 150 Anzeige_int 1 Authentifizierung Authentizitätstyp PASS auth_pass server123 } virtuelle_IP-Adresse { 192.168.80.100 dev eth1 Bezeichnung eth1:1 } } ............................................................ Über Konfigurationsanweisungen:
4.2. Standby-Knoten (192.168.80.21) #Installieren Sie Keepalived yum installiere keepalived -y #Starten Sie den Keepalived-Dienst /etc/init.d/keepalived start ---------------------------------------------- [root@hadoop02 anginx]# /etc/init.d/keepalived start Keepalived wird gestartet: [ OK ] [root@hadoop02 anginx]# ps -ef |grep keepalived root 15723 1 0 00:59 ? 00:00:00 /usr/sbin/keepalived -D root 15724 15723 0 00:59 ? 00:00:00 /usr/sbin/keepalived -D root 15725 15723 0 00:59 ? 00:00:00 /usr/sbin/keepalived -D root 15731 15622 0 00:59 Punkte/1 00:00:00 grep keepalived [root@hadoop02 anginx]# #Stellen Sie das System so ein, dass es automatisch startet echo "/etc/init.d/keepalived start" >>/etc/rc.local #Beenden Sie den Keepalived-Dienst /etc/init.d/keepalived stop #Bearbeiten Sie die Keepalived-Konfigurationsdatei vi /etc/keepalived/keepalived.conf ----------------------------------------------------------------- ! Konfigurationsdatei für Keepalived global_defs { Benachrichtigungs-E-Mail { [email protected] [email protected] [email protected] } Benachrichtigungs-E-Mail von [email protected] SMTP-Server 192.168.200.1 smtp_connect_timeout 30 Router-ID lb02 } vrrp_instance VI_1 { Status BACKUP Schnittstelle eth1 virtuelle_Router_ID 55 Priorität 100 Anzeige_int 1 Authentifizierung Authentizitätstyp PASS auth_pass server123 } virtuelle_IP-Adresse { 192.168.80.100 dev eth1 Bezeichnung eth1:1 } } ............................................................ 5. Testen 5.1. Starten Sie den Keepalived-Dienst des Master- und Standby-Knotens #Auf Knoten 1 ausführen (192.168.80.22) /etc/init.d/keepalived start ------------------------------------- [root@hadoop02 anginx]# ps -ef |grep keepalived root 15788 1 0 01:09 ? 00:00:00 /usr/sbin/keepalived -D root 15790 15788 0 01:09 ? 00:00:00 /usr/sbin/keepalived -D root 15791 15788 0 01:09 ? 00:00:00 /usr/sbin/keepalived -D root 15807 15622 0 01:33 Punkte/1 00:00:00 grep keepalived [root@hadoop02 anginx]# #Auf Knoten 2 ausführen (192.168.80.21) /etc/init.d/keepalived start ------------------------------------------ [root@hadoop01 ~]# ps -ef |grep keepalived root 11542 1 0 01:30 ? 00:00:00 /usr/sbin/keepalived -D root 11544 11542 0 01:30 ? 00:00:00 /usr/sbin/keepalived -D root 11545 11542 0 01:30 ? 00:00:00 /usr/sbin/keepalived -D root 11550 11512 0 01:33 Punkte/1 00:00:00 grep keepalived [root@hadoop01 ~]# 5.2. Zugriff auf Dienste über virtuelle IP http://192.168.80.100/session-redis-demo/ 5.3. Stoppen Sie den Keepalived-Dienst auf dem Masterknoten #Auf Knoten 1 ausführen (192.168.80.22) /etc/init.d/keepalived stoppen #Beobachten Sie die Änderungen in der IP-Adresse des Standby-Knotens ---------------------------------------------- [root@hadoop01 ~]# 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: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast Status UP qlen 1000 Link/Ether 00:50:56:38:e5:46 brd ff:ff:ff:ff:ff:ff:ff inet 192.168.80.21/24 brd 192.168.80.255 Bereich global eth1 inet 192.168.80.100/32 Bereich global eth1:1 inet6 fe80::250:56ff:fe38:e546/64 Bereichslink valid_lft für immer preferred_lft für immer [root@hadoop01 ~]# 5.4. Greifen Sie weiterhin über die virtuelle IP auf den Dienst zu http://192.168.80.100/session-redis-demo/ 6.Keepalived+nginx-Integration Beschreibung: Schreiben Sie ein Nginx-Daemon-Skript. Wenn der Nginx-Dienst ausfällt, stoppen Sie den Keepalived-Dienst des aktuellen Knotens. Automatisch zum Standby-Knoten wechseln. 6.1. Schreiben Sie ein Nginx-Daemon-Skript vi nginx_check.sh -------------------------------------- #!/bin/bash während wahr Tun wenn [ $(netstat -tlnp | grep nginx | wc -l) -ne 1 ] Dann /etc/init.d/keepalived stoppen fi Schlaf 2 Erledigt #Autorisieren Sie das Skript chmod u+x nginx_check.sh #Skript nohup /usr/local/develop/anginx/shell/nginx_check.sh ausführen & 6.2. Stoppen Sie den Nginx-Dienst des Masterknotens #Stoppen Sie den Nginx-Dienst des Masterknotens /usr/local/develop/anginx/webserver/nginx/sbin/nginx -s stop #Prozess suchen [root@hadoop02 ~]# ps -ef |grep nginx root 15915 1 0 01:51 ? 00:00:00 /bin/bash /usr/local/develop/anginx/shell/nginx_check.sh root 16516 15753 0 01:54 Punkte/5 00:00:00 grep nginx [root@hadoop02 ~]# #Beobachten Sie die Änderungen der Standby-Knoten [Der Dienst ist normal] IP-Adresse -------------------------------------- [root@hadoop01 shell]# 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: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast Status UP qlen 1000 Link/Ether 00:50:56:38:e5:46 brd ff:ff:ff:ff:ff:ff:ff inet 192.168.80.21/24 brd 192.168.80.255 Bereich global eth1 inet 192.168.80.100/32 Bereich global eth1:1 inet6 fe80::250:56ff:fe38:e546/64 Bereichslink valid_lft für immer preferred_lft für immer [root@hadoop01-Shell] #Starten Sie den Masterknoten nginx und den Keepalived-Dienst erneut /usr/local/develop/anginx/webserver/nginx/sbin/nginx /etc/init.d/keepalived start Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
>>: So implementieren Sie den neuen Operator von JavaScript selbst
Hinweis: Alle Bilder in diesem Artikel stammen au...
Inhaltsverzeichnis 1. Umweltvorbereitung 2. Ausfü...
Dieser Artikel beschreibt die Installations- und ...
Vorwort Ich habe vor Kurzem Linux gelernt und dan...
Konfigurieren Sie zunächst die Projektartefakte K...
JavaScript zeigt und verbirgt Bilder. Zu Ihrer In...
Manche Leute verwenden diese drei Tags auf pervers...
Beim Löschen einer Tabelle oder eines Datenelemen...
Rendern Nachdem ich online nach relevanten Inform...
Inhaltsverzeichnis Stapelkopie copyWithin() Array...
Es wird eine Liste mit mehreren Bestellungen benö...
Verwenden Sie JOIN anstelle von Unterabfragen MyS...
Das Team ersetzte den neuen Rahmen. Alle neuen Un...
Spiegelung ist auch eine der Kernkomponenten von ...
1. Erstellen Sie eine Datenbank 2. Erstellen Sie ...