(1) Experimentelle Umgebung youxi1 192.168.5.101 Lastenausgleich youxi2 192.168.5.102 Host 1 youxi3 192.168.5.103 Host 2 (2) Nginx-Lastausgleichsstrategie Der Nginx-Lastausgleich wird verwendet, um einen Server aus der in der Upstream-Vorlage definierten Backend-Serverliste zum Empfangen von Benutzeranforderungen auszuwählen. Ein grundlegendes Upstreammodul sieht wie folgt aus: upstream [Servergruppenname]{ Server [IP-Adresse]:[Portnummer]; Server [IP-Adresse]:[Portnummer]; .... } Nachdem das Upstream-Modul konfiguriert ist, müssen Sie den Reverse-Proxy für den Zugriff auf die Serverliste im folgenden Format angeben: Standort ~ .*$ { Index: Index.jsp; Index.html; Proxy_Pass http://[Servergruppenname]; } Erweiterung: Nginx-Standortkonfigurationsregeln: https://www.jb51.net/article/182472.htm Damit ist die grundlegende Lastverteilung abgeschlossen, der tatsächliche Bedarf kann jedoch nicht gedeckt werden. Derzeit unterstützt das Upstream-Modul von Nginx sechs Lastausgleichsstrategien (Algorithmen): Polling (Standardmethode), Weight (Gewichtungsmethode), IP_Hash (basierend auf der IP-Zuweisungsmethode), Least_Conn (Methode mit geringster Verbindung), Fair (von einem Drittanbieter bereitgestellte Methode für die Antwortzeit) und URL_Hash (basierend auf der von einem Drittanbieter übergebenen URL-Zuweisungsmethode). 1) Umfrage Die grundlegendste Konfigurationsmethode ist die Standard-Lastausgleichsstrategie des Upstreammoduls. Jede Anfrage wird gleichmäßig und in chronologischer Reihenfolge an verschiedene Backend-Server verteilt. Die Parameter sind wie folgt:
Hinweis: 1. Als ausgefallen markierte Server werden automatisch entfernt. 2. Polling ist die Standardeinstellung. 3. Diese Strategie eignet sich für Dienste mit zustandsloser Serverkonfiguration und kurzen flachen Blöcken. 2) Gewicht Gewichtete Methode, gibt die Wahrscheinlichkeit einer Umfrage basierend auf der Umfragestrategie an. Es kann auch in Betracht gezogen werden, auf der Grundlage der Umfrage einen Gewichtungsparameter hinzuzufügen. Dieser Parameter gibt die Wahrscheinlichkeit der Umfrage an und sein Wert ist eine Zahl. Die Konfigurationsvorlage für das Upstreammodul sieht wie folgt aus: upstream [Servergruppenname]{ Server [IP-Adresse]:[Portnummer] Gewicht=2; Server [IP-Adresse]:[Portnummer]; .... } In diesem Beispiel ist der Standardwert für einen Server ohne Gewichtungsparameter 1. Der Gewichtungswert ist proportional zum Zugriffsverhältnis. Die Summe aller Gewichtungswerte ist eine Zykluseinheit, und der eigene Gewichtungswert des Servers ist die Anzahl der Abfragen innerhalb der Zykluseinheit. Hinweis: 1. Je höher das Gewicht, desto mehr Anfragen werden zugewiesen. 2. Diese Strategie kann in Kombination mit der Least_conn-Strategie und der Iphash-Strategie verwendet werden. 3. Diese Strategie eignet sich besser für Situationen, in denen es große Unterschiede in der Serverhardwarekonfiguration gibt. 3) ip_hash Gemäß der IP-Zuweisungsmethode wird der Load Balancer so angegeben, dass er basierend auf der Client-IP zugewiesen wird. Diese Methode stellt sicher, dass dieselbe Clientanforderung konsistent an denselben Server gesendet wird, um die Sitzungssitzung sicherzustellen. Auf diese Weise greift jeder Besucher auf einen festen Backend-Server zu, wodurch das Problem gelöst werden kann, dass die Sitzung nicht zwischen Servern wechseln kann. Die Konfigurationsvorlage für das Upstreammodul sieht wie folgt aus: upstream [Servergruppenname]{ ip_hash; Server [IP-Adresse]:[Portnummer] Gewicht=2; Server [IP-Adresse]:[Portnummer]; .... } Hinweis: 1. Versionen vor nginx 1.3.1 können keine Gewichte in ip_hash verwenden; 2. ip_hash kann nicht gleichzeitig mit einem Backup verwendet werden; 3. Diese Strategie eignet sich für zustandsbehaftete Serviceprogramme wie Sitzungen; 4. Wenn ein Server entfernt werden muss, muss er manuell heruntergefahren werden. 4) am wenigsten_conn Der Modus „Least Connection“ sendet die Anforderung an den Backend-Server mit der geringsten Anzahl an Verbindungen. Durch Polling werden die Anfragen gleichmäßig auf die einzelnen Backends verteilt, so dass deren Lasten ungefähr gleich sind. Allerdings dauern manche Anfragen sehr lange und verursachen eine hohe Belastung des Backends, auf dem sie sich befinden. In diesem Fall kann least_conn einen besseren Lastausgleichseffekt erzielen. Die Konfigurationsvorlage für das Upstreammodul sieht wie folgt aus: upstream [Servergruppenname]{ am wenigsten_Verbindung; Server [IP-Adresse]:[Portnummer] Gewicht=2; Server [IP-Adresse]:[Portnummer]; .... } Hinweis: Diese Strategie eignet sich für Situationen mit Serverüberlastung, in denen Anfragen mit unterschiedlichen Verarbeitungszeiten unterschiedlich lange dauern. 5) fair Antwortzeitmethode: Die Anfragen werden entsprechend der Antwortzeit des Servers zugeteilt, wobei Anfragen mit kürzerer Antwortzeit Vorrang erhalten. Die Konfigurationsvorlage für das Upstreammodul sieht wie folgt aus: upstream [Servergruppenname]{ Server [IP-Adresse]:[Portnummer] Gewicht=2; Server [IP-Adresse]:[Portnummer]; .... gerecht; } Hinweis: Es muss ein Plugin eines Drittanbieters installiert werden. 6) url_hash Die URL-Verteilungsmethode verteilt Anfragen entsprechend dem Hash-Ergebnis der aufgerufenen URL, sodass jede URL an denselben Backend-Server weitergeleitet wird. Sie sollte in Verbindung mit Cache-Treffern verwendet werden. Mehrere Anforderungen für dieselbe Ressource können bei verschiedenen Servern eingehen, was zu unnötigen Mehrfachdownloads, niedrigen Cache-Trefferraten und einer Verschwendung von Ressourcenzeit führt. Durch die Verwendung von url_hash kann dieselbe URL (also dieselbe Ressourcenanforderung) denselben Server erreichen. Sobald die Ressource zwischengespeichert ist, kann sie aus dem Cache gelesen werden, wenn die Anforderung erneut empfangen wird. Die Konfigurationsvorlage für das Upstreammodul sieht wie folgt aus: upstream [Servergruppenname]{ Hashwert für $request_uri; Server [IP-Adresse]:[Portnummer] Gewicht=2; Server [IP-Adresse]:[Portnummer]; .... } Hinweis: 1. Es muss ein Plug-In eines Drittanbieters installiert werden. 2. URI ist ein „i“, nicht ein kleines „L“. (3) Experiment 1) Kompilieren und installieren Sie nginx auf dem Load Balancer youxi1 Installieren Sie Nginx-Abhängigkeiten [root@youxi1 ~]# yum -y installiere gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre pcre-devel Laden Sie das Nginx-Quellpaket nginx-1.14.1.tar.gz hoch, entpacken Sie es und installieren Sie es [root@youxi1 ~]# tar xf nginx-1.14.1.tar.gz -C /usr/local/src/ [root@youxi1 ~]# cd /usr/local/src/nginx-1.14.1/ [root@youxi1 nginx-1.14.1]# ./configure --prefix=/usr/local/nginx --mit-http_dav_module --mit-http_stub_status_module --mit-http_addition_module --mit-http_sub_module --mit-http_flv_module --mit-http_mp4_module [root@youxi1 nginx-1.14.1]# make && make install [root@youxi1 nginx-1.14.1]# echo $? 0 Parameterbeschreibung: --with-http_dav_module, ngx_http_dav_module-Unterstützung aktivieren (PUT, DELETE, MKCOL hinzufügen: Sammlung erstellen, COPY- und MOVE-Methoden). Standardmäßig ist es deaktiviert und muss kompiliert werden; --with-http_stub_status_module, Unterstützung für ngx_http_stub_status_module aktivieren (Arbeitsstatus von Nginx seit dem letzten Start abrufen); --with-http_addition_module, ngx_http_addition_module-Unterstützung aktivieren (unterstützt als Ausgabefilter unvollständige Pufferung und Anfragen mit teilweisen Antworten); --with-http_sub_module, aktiviert die Unterstützung für ngx_http_sub_module (ermöglicht das Ersetzen von Text in der Nginx-Antwort durch anderen Text); --with-http_flv_module, aktiviert die Unterstützung für ngx_http_flv_module (ermöglicht die Suche im Speicher mithilfe zeitbasierter Offsetdateien); --with-http_mp4_module, aktiviert die Unterstützung für MP4-Dateien (ermöglicht die Suche nach Dateien mithilfe zeitbasierter Offsets im Speicher). Nginx-Benutzer generieren [root@youxi1 nginx-1.14.1]# useradd -M -s /sbin/nologin nginx Starten und Autostart hinzufügen [root@youxi1 nginx-1.14.1]# /usr/local/nginx/sbin/nginx [root@youxi1 nginx-1.14.1]# echo /usr/local/nginx/sbin/nginx >> /etc/rc.local [root@youxi1 nginx-1.14.1]# chmod +x /etc/rc.d/rc.local Wenn die Firewall eingeschaltet ist, denken Sie daran, die Portnummer hinzuzufügen [root@youxi1 nginx-1.14.1]# Firewall-cmd --permanent --zone=public --add-port=80/tcp && Firewall-cmd --reload Erfolg Erfolg Überprüfen Sie die Schnittstelle, um festzustellen, ob nginx normal installiert ist Ändern Sie nach Abschluss des Tests die Nginx-Konfigurationsdatei und starten Sie Nginx anschließend neu. [root@youxi1 nginx-1.14.1]# cp /usr/local/nginx/conf/nginx.conf{,.bak} [root@youxi1 nginx-1.14.1]# vim /usr/local/nginx/conf/nginx.conf Benutzer nginx; //Zeile 2 Standort / { //Zeile 43 und folgende root html; Index Index.html Index.htm; wenn ($request_uri ~* \.html$){ Proxy-Passwort http://htmlservers; } wenn ($request_uri ~* \.php$){ Proxy-Passwort http://phpservers; } Proxy-Passwort http://picservers; } upstream htmlservers { //Fügen Sie unter dem http-Modul den Server 192.168.5.102:80 auf derselben Ebene wie das Servermodul hinzu. Server 192.168.5.103:80; } Upstream-Phhpserver{ Server 192.168.5.102:80; Server 192.168.5.103:80; } Upstream-Bildserver { Server 192.168.5.102:80; Server 192.168.5.103:80; } [root@youxi1 nginx-1.14.1]# /usr/local/nginx/sbin/nginx -s neu laden 2) Stellen Sie das Webseitenprogramm auf youxi2 und youxi3 bereit [root@youxi2 ~]# yum -y installiere httpd [root@youxi2 ~]# echo youxi2 > /var/www/html/index.html [root@youxi2 ~]# echo youxi2.php > /var/www/html/index.php [root@youxi2 ~]# echo youxi2.other > /var/www/html/index.jsp [root@youxi2 ~]# systemctl starte httpd.service [root@youxi3 ~]# yum -y installiere httpd [root@youxi3 ~]# echo youxi3 > /var/www/html/index.html [root@youxi3 ~]# echo youxi3.php > /var/www/html/index.php [root@youxi3 ~]# echo youxi3.other > /var/www/html/index.jsp [root@youxi3 ~]# systemctl starte httpd.service Wenn die Firewall eingeschaltet ist, denken Sie daran, die Portnummer hinzuzufügen [root@youxi2 ~]# Firewall-cmd --permanent --zone=public --add-port=80/tcp && Firewall-cmd --reload Erfolg Erfolg [root@youxi3 ~]# Firewall-cmd --permanent --zone=public --add-port=80/tcp && Firewall-cmd --reload Erfolg Erfolg 3) Testen Testen Sie zuerst die HTML-Seite Testen Sie dann die PHP-Seite Testen Sie abschließend andere Seiten Referenz: https://www.cnblogs.com/1214804270hacker/p/9325150.html Dies ist das Ende dieses Artikels zum Erstellen eines Lastausgleichsclusters mit Nginx. Weitere Informationen zum Nginx-Lastausgleichscluster finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Vue implementiert einen Login-Verifizierungscode
>>: Beispiel für eine einfache Operation einer MySQL-Abfrageanweisung
Inhaltsverzeichnis 1. Wie werden Strukturen im Ge...
Wenn das Softwarepaket nicht vorhanden ist, kann ...
Inhaltsverzeichnis Gängige Komprimierungsformate:...
Das Flexbox-Layoutmodul soll eine effizientere Mö...
Hinweis: Beim Schreiben der Datei docker-compose....
Inhaltsverzeichnis 1. Grundkonzepte von GTID 2. G...
#docker ps-Check, alle Ports sind zugeordnet CONT...
Ergebnisse erzielen Implementierungscode html <...
Dynamische Bibliothek kann unter Linux nicht gela...
Gespeicherte Prozeduren und Codierung Wenn in ges...
Um mehrere Datenbanken zu sichern, können Sie den...
In diesem Artikelbeispiel wird der spezifische Co...
CSS realisiert den Prozessnavigationseffekt. Der ...
Mit der zunehmenden Reife des Internetzeitalters ...
Das Installationstutorial für MySQL 5.7.27 wird w...