Heim > Artikel > Betrieb und Instandhaltung > Konfigurieren Sie Nginx, um einen Lastausgleich zu erreichen (Bild)
Wenn Unternehmen Probleme mit hoher Parallelität lösen, verfügen sie im Allgemeinen über zwei Verarbeitungsstrategien: Software und Hardware. Auf der Hardware kann ein Lastausgleichsmodul hinzugefügt werden, um eine große Anzahl von Anforderungen zu verteilen Engpass bei hoher Parallelität: Datenbank + Webserver-Lösung. Die am häufigsten verwendete Lösung zum Hinzufügen von Last auf der Frontschicht des Webservers ist die Verwendung von Nginx, um einen Lastausgleich zu erreichen.
1. Die Rolle des Lastausgleichs
1 Gemäß einem bestimmten Algorithmus [Gewichtung, Abfrage] werden Clientanforderungen an verschiedene Anwendungsserver weitergeleitet, wodurch der Druck auf einen einzelnen Server verringert und die Parallelität des Systems erhöht wird.
2. Fehlerbeseitigung
Verwenden Sie die Heartbeat-Erkennung, um festzustellen, ob der Anwendungsserver derzeit normal funktionieren kann. Wenn der Server ausfällt, wird die Anfrage automatisch an andere Anwendungsserver gesendet.
3. Wiederherstellen und Hinzufügen
(empfohlenes Lernen:
nginx-Tutorial) Wenn festgestellt wird, dass der ausgefallene Anwendungsserver seine Arbeit wieder aufgenommen hat, wird er wird automatisch hinzugefügt. Treten Sie dem Team bei, das Benutzeranfragen bearbeitet.
2. Nginx implementiert den LastausgleichVerwendet außerdem zwei Tomcats, um zwei Anwendungsserver zu simulieren, die Portnummern sind 8080 und 8081
1. Die Lastverteilungsstrategie von Nginx
Der Upstream von Nginx unterstützt derzeit den Verteilungsalgorithmus:
1), Abfrage – 1:1-Verarbeitung der Anfragen (Standard)Jede Anfrage wird nacheinander in chronologischer Reihenfolge einem anderen Anwendungsserver zugewiesen. Wenn der Anwendungsserver ausfällt, wird er automatisch gelöscht und die verbleibenden werden weiterhin abgefragt.
2), Gewicht - Sie können es erhöhenDurch die Konfiguration des Gewichts geben Sie die Abfragewahrscheinlichkeit an, das Gewicht ist proportional zum Zugriffsverhältnis, das verwendet wird, wenn Die Leistung des Anwendungsservers ist im Durchschnitt nicht gut.
3), ip_hash-AlgorithmusJede Anfrage wird entsprechend dem Hash-Ergebnis der abgerufenen IP zugewiesen, sodass jeder Besucher einen festen Zugriff auf einen Anwendungsserver hat, Dies kann die gemeinsamen Probleme der Sitzung lösen.
2. Konfigurieren Sie die Lastausgleichs- und Verteilungsstrategie von Nginx
Dies kann durch Hinzufügen bestimmter Parameter nach der in den Upstream-Parametern hinzugefügten Anwendungsserver-IP erreicht werden, wie zum Beispiel:
upstream tomcatserver1 { server 192.168.72.49:8080 weight=3; server 192.168.72.49:8081; } server { listen 80; server_name 8080.max.com; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://tomcatserver1; index index.html index.htm; } }
Bestanden Die obige Konfiguration kann erreicht werden. Beim Zugriff auf die Website
8080.max.com werden aufgrund der Konfiguration der proxy_pass-Adresse alle Anforderungen zunächst über den Nginx-Reverse-Proxy-Server geleitet , und dann wird der Server Wenn die Anforderung an den Zielhost weitergeleitet wird, die Upstream-Adresse von Tomcatsever1 lesen, die Verteilungsrichtlinie lesen und das Tomcat1-Gewicht auf 3 konfigurieren, sodass Nginx die meisten Anforderungen an Tomcat1 auf Server 49 sendet. Dies ist Port 8080; eine kleinere Anzahl wird an Tomcat1 auf Server 49 gesendet, was Port 8080 ist, um einen bedingten Lastausgleich zu erreichen. Diese Bedingung ist natürlich die Fähigkeit der Server 1 und 2 zur Verarbeitung von Hardware-Indizes.
3. Andere Konfigurationen von nginx
upstream myServer { server 192.168.72.49:9090 down; server 192.168.72.49:8080 weight=2; server 192.168.72.49:6060; server 192.168.72.49:7070 backup; }
1) down
bedeutet, dass der einzelne Frontserver vorübergehend nicht an der Last teilnimmt
2) Gewicht
Der Standardwert ist 1. Je größer das Gewicht, desto größer das Gewicht der Ladung.
3) max_fails
Die Anzahl der zulässigen Anforderungsfehler beträgt standardmäßig 1. Wenn die maximale Anzahl überschritten wird, wird der vom Modul „proxy_next_upstream“ definierte Fehler zurückgegeben
4) fail_timeout
Pausenzeit nach max_fails-Fehlern.
5) Backup
Wenn alle anderen Nicht-Backup-Maschinen ausgefallen oder ausgelastet sind, fordern Sie die Backup-Maschine an. Daher wird diese Maschine den geringsten Druck haben.
3. Hohe Verfügbarkeit mit NginxZusätzlich zur Erzielung einer hohen Verfügbarkeit der Website, d. h. Bereitstellung von n mehreren Servern zum Veröffentlichen desselben Dienstes und Hinzufügen eines Lastausgleichs Der Server verteilt Anforderungen, um sicherzustellen, dass jeder Server relativ gesättigte Anforderungen bei hoher Parallelität verarbeiten kann. Ebenso muss der Lastausgleichsserver hochverfügbar sein, um zu verhindern, dass die nachfolgenden Anwendungsserver unterbrochen werden und nicht arbeiten können, wenn der Lastausgleichsserver hängen bleibt.
Eine Lösung, um eine hohe Verfügbarkeit zu erreichen: Redundanz hinzufügen. Fügen Sie n Nginx-Server hinzu, um den oben genannten Single Point of Failure zu vermeiden.
4. ZusammenfassungZusammenfassend lässt sich sagen, dass der Lastausgleich, unabhängig davon, ob es sich um eine Vielzahl von Software- oder Hardwarelösungen handelt, hauptsächlich eine große Anzahl gleichzeitiger Anforderungen nach bestimmten Regeln verteilt Lassen Sie verschiedene Server damit umgehen, wodurch der momentane Druck auf einen bestimmten Server verringert und die Anti-Parallelitätsfähigkeit der Website verbessert wird. Der Autor glaubt, dass der Grund, warum Nginx beim Lastausgleich weit verbreitet ist, in seiner flexiblen Konfiguration liegt. Eine Nginx.conf-Datei löst die meisten Probleme, unabhängig davon, ob Nginx einen virtuellen Server erstellt, ein Nginx-Reverse-Proxy-Server oder Nginx, das in diesem Artikel vorgestellt wird . Der Lastausgleich wird fast immer in dieser Konfigurationsdatei durchgeführt. Der Server ist nur für die Einrichtung und Ausführung von Nginx verantwortlich. Darüber hinaus ist es leichtgewichtig und kann bessere Ergebnisse erzielen, ohne zu viele Serverressourcen zu beanspruchen.
Das obige ist der detaillierte Inhalt vonKonfigurieren Sie Nginx, um einen Lastausgleich zu erreichen (Bild). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!