Es gibt nicht viel zu sagen, Nginx-Installation und -Konfiguration sowie Lastausgleich. Sie können einen anderen Artikel lesen, den ich geschrieben habe: „Praxis des Nginx-Lastausgleichs“, und über den Lastausgleich können Sie lesen, was ich geschrieben habe. Die anderen beiden Artikel, einer ist „lvs+keepalived Load Balancing“ und das andere ist „haproxy+keepalived Load Balancing“. Informationen zu den Unterschieden zwischen den drei Arten des Lastausgleichs finden Sie in einem von mir nachgedruckten Artikel „Software Level Load Balancer“ (Einführung und). Vergleich der Funktionen von LVS/HAProxy/Nginx)“, gehen wir direkt zu den Konfigurationsschritten:
1. Systemumgebung
[einfache] Ansicht
Klarschrift
- Systemversion: CentOS Release 5.9 (Final) x86 32-Bit
- Nginx-Version: 1.2 . 8
- Keepalived-Version: 1.2.4
-
- Master-Keepalived:192.168.207.130
-
- Von keepalived:192.168.207.131
-
-
- VIP: 192.168.207.140
- WEB_1:192.168.207.129 Port 80 🎜 >WEB_2:192.168.207.130. 808 0 Port
- WEB_3:192.168.207.131 8080-Port
-
2. Benutzerdefinierte Nginx-Konfigurationsdatei
In Betrieb 192.168.207.130 und 192.168.207.131
[einfache] Ansicht
Klarschrift
useradd nginx
- vi /usr/local/nginx/conf/nginx.conf
Der Inhalt ist wie folgt:
[einfache] Ansicht
Klarschrift
- #Running user
user nginx nginx; #Globales Fehlerprotokoll und PID-Datei error_log-Protokolle/Fehlermeldung pid logs/nginx.pid; - events { Prozesse* worker_connections
- }
-
#Richten Sie den http-Server ein und verwenden Sie seine Reverse-Proxy-Funktion, um Lastausgleichsunterstützung bereitzustellen 🎜> >
- default_type application/octet- stream; #Standarddatentyp
- #Protokollformat festlegen
-
- log_format main '$ remote_addr - $remote_user [$time_local] '
- '"$request" $status $bytes_sent '
- '"$http_referer" "$ http_user_agent" ' '
- '"$gzip_ratio"'; >
- log_format download '$remote_addr - $remote_user [$time_local] '
- '"$request" $status $bytes_sent '
- '"$http_referer" "$http_user_agent" '
- '"$http_range" "$sent_http_content_range"'
- #Anforderungspuffer festlegen
- client_header_buffer_size 1k;
- large_client_header_buffers 4 4k;
- #Gzip-Modul aktivieren
- #gzip ein; > #gzip_buffers 4 8k;
-
#gzip_types text/plain; 🎜>
- #postpone_output 1460;
- #Zugriffsprotokoll festlegen 🎜> client_header_timeout 3m;
- client_body_timeout 3m; >
- tcp_nopush on; keepalive_timeout 65; 🎜>
- 🎜> Der Parameter #weigth stellt das Gewicht dar. Je höher das Gewicht ist , desto größer ist die Wahrscheinlichkeit, zugewiesen zu werden
- Server 192.168.207.131:8080 Gewicht=5;
- }
-
Server { Webdienst einrichten, Überwachung 8080 Port
- Listen 8080;
- Servername 192.168.207.131;# > index index.html index.htm;
- root /var /www /html;
- hören 80;
- ; #Wenn es viele Dateien gibt, wird diese Methode aufgrund des Caching-Effekts nicht empfohlen durch Tintenfisch ist besser.
- #Lastausgleich aktivieren auf „/“
- Standort / {
- Proxy_pass http: //mysvr; #Back-End-Webserver in diesem Format verwenden
- Proxy_Redirect Off; ;
- Proxy_set_header für;
- 0; 🎜>
- Proxy_read_timeout 90
- Proxy_buffer_size 4k; Proxy_buffers 4 32K;
- Proxy_temp_file_write_size 🎜>
- #Fügen Sie bei der Installation den Parameter --with-http_status_module hinzu > location/NginxStatus { _status on; 🎜>
- auth_basic_user_file conf/htpasswd ; 🎜> }
-
3. Keepalived-Konfigurationsdatei anpassen
-
[einfache] Ansicht
Klarschrift
- vi /etc/keepalived/keepalived.conf
Der Inhalt ist wie folgt:
- [einfache] Ansicht
Klarschrift
- global_defs {
- notification_email {
- root@localhost.localdomain
- smtp_connect_timeout 30
- router_id LVS_DEVEL
- }
- vrrp_script chk_http_port {
- script "/etc/keepalived/check_nginx.sh" ###Überwachungsskript
- Intervall 2 Intervall ### Überwachungszeit
- Gewicht 2 vrrp_instance vi_1 {
- Status Master 🎜 >>
- virtual_router_id 51 ### Die beiden Server müssen gleich sein
- Priorität 101 ### Der Gewichtungswert MASTRE muss höher sein als BAUCKUP
- Authentifizierung {
- auth_pass 1111
- }
-
track_script {
- 🎜>
- >
virtual_ipaddress { 192.168.207.140 ### VIP-Adresse } }
- 4 benutzerdefiniertes Skript
- [einfache] Ansicht
Klarschrift
-
vi /etc/keepalived/check_nginx.sh >[einfache] Ansicht
Klarschrift
!/bin/bash
A=`ps -C nginx --no-header |wc -l` ## Wenn kein Prozess Null wert ist
- /usr/local/nginx/sbin/nginx
- Sleep 3
- if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
- /etc/init .d/keepalived stop Prozess
- fi
- fi Zum Starten starten Sie zuerst Nginx. Wenn es nach 3 Sekunden noch nicht gestartet ist, wird das Keepalived ausgeführt Der Prozess wird ebenfalls geschlossen, sodass Keepalived die Hochverfügbarkeit übernehmen und bereitstellen kann. Hier sorgt der Keepalived-Dienst für Hochverfügbarkeit und Nginx stellt den Lastausgleich für Backend-Webserver bereit.
Sie müssen dem Skript auch Ausführungsberechtigungen hinzufügen, wie folgt [einfache] Ansicht
Klarschrift
- chmod +x /etc/keepalived/check_nginx.sh
5. Starten Sie den Dienst und testen Sie
Auf WEB_1 habe ich gestern Abend den mit dem System gelieferten Apache-Webserver verwendet Ich muss nur starten. Ein gutes Master-Slave-Keepalived ist in Ordnung, da es das Skript check_nginx.sh verwendet, um Nginx automatisch zu starten. Alles hat begonnen. Besuchen Sie http://192.168.207.140, um abwechselnd auf den Inhalt der drei Back-End-Webserver zuzugreifen.
Hier schalten wir den Haupt-Keepalived-Dienst aus, um die Hochverfügbarkeit zu testen.
Dann wird er auf dem Slave sein keepalived server /var/log/messages Protokolle wie diese anzeigen- [einfache] Ansicht
Klarschrift
19. April 17:42:44 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Übergang zum MASTER STATE
19. April 17:42:45 localhost Keepalived_vrrp: VRRP_Instance(VI_1) tritt in den MASTER-STATUS ein
19. April 17:42:45 localhost Keepalived_vrrp: VRRP_Instance(VI_1) stellt Protokoll-VIPs ein .
19. April 17:42:45 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Senden von kostenlosen ARPs auf eth0 für 192.168.207.140
- 19. April 17:42 :45 localhost Keepalived_vrrp: Netlink Reflector meldet IP 192.168.207.140 hinzugefügt 19. April 17:42:45 localhost Keepalived_healthcheckers: Netlink Reflector meldet IP 192.168.2 07.140 hinzugefügt
- 19. April 17:42:45 localhost avahi-daemon[4204]: Registrieren eines neuen Adressdatensatzes für 192.168.207.140 auf eth0
-
Besuchen Sie weiterhin http://192.168.207.140, Sie können weiterhin auf die drei Back-End-Webserver zugreifen
Öffnen Sie dann das Keepalived des ursprünglichen Besitzers, Sie können die Protokolle beobachten der ursprüngliche Slave-Keepalived-Server
[einfache] Ansicht anzeigen
Klarschrift
-
19. April 17:42:50 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Senden von kostenlosen ARPs auf eth0 für 192.168.207.140
- 19. April 17:44:06 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Anzeige mit höherer Priorität erhalten
- 19. April 17:44:06 localhost Keepalived_vrrp: VRRP_Instance( VI_1) Eintritt in den BACKUP-STATUS
- 19. April 17:44:06 localhost Keepalived_vrrp: VRRP_Instance(VI_1) entfernt Protokoll-VIPs. :06 localhost Keepalived_vrrp: Netlink Reflector meldet IP 192.168.207.140 entfernt
- 19. April 17:44:06 localhost Keepalived_healthcheckers: Netlink Reflector meldet IP 192.168.207.140 entfernt
- 19. April 17:44:06 localhost avahi-daemon[ 4204]: Adressdatensatz für 192.168.207.140 auf eth0 wird zurückgezogen. Das ursprüngliche Master-Slave-Ergebnis wird wiederhergestellt.
- In der Produktionsumgebung hängt sich möglicherweise auch der Back-End-Computer auf, aber Sie müssen sich darüber keine Sorgen machen, Nginx weist die Sitzung automatisch einem guten Back-End-Webserver zu
ok, hier ist alles vorbei, üben Sie persönliche Tests, ich wünsche Ihnen viel Erfolg
Von: http://blog.csdn.net/ zmj_88888888 /article/details/8825471
Das Obige stellt den Hochverfügbarkeits-Lastausgleich von Nginx vor, einschließlich Aspekten des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.