Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Erläuterung des Nginx-Lastausgleichskonfigurationsbeispiels

Detaillierte Erläuterung des Nginx-Lastausgleichskonfigurationsbeispiels

WBOY
Freigeben: 2016-08-08 09:21:03
Original
1015 Leute haben es durchsucht

[Einführung] Lastausgleich ist etwas, das unsere stark frequentierte Website durchführen muss. Jetzt werde ich Ihnen die Lastausgleichskonfigurationsmethode auf dem Nginx-Server vorstellen hilfreich für Schüler, die es brauchen. Lastausgleich Lassen Sie uns zunächst kurz verstehen, was Lastausgleich ist. Lassen Sie mich Ihnen die Lastausgleichskonfigurationsmethode auf dem Nginx-Server vorstellen. Ich hoffe, dass sie für Schüler in Not hilfreich ist.

Lastausgleich

Lassen Sie uns zunächst kurz verstehen, was Lastausgleich ist. Wenn Sie es wörtlich verstehen, können Sie es erklären N Server Die Last wird geteilt gleichmäßig, und ein bestimmter Server wird aufgrund einer hohen Auslastung auf einem bestimmten Server nicht im Leerlauf sein. Die Voraussetzung für den Lastausgleich besteht darin, dass er von mehreren Servern erreicht werden kann, dh mehr als zwei Server sind ausreichend. Testumgebung

Da kein Server vorhanden ist, hostet dieser Test direkt den angegebenen Domänennamen und installiert dann drei CentOS in VMware.

Testdomänenname: a.com

A-Server-IP: 192.168.5.149 (Haupt)

B-Server-IP: 192.168.5.27

C-Server IP: 192.168.5.126

Bereitstellungsidee

Ein Server wird als Hauptserver verwendet, der Domänenname wird direkt auf A-Server (192.168.5.149) aufgelöst und die A-Server-Last wird auf B-Server verteilt ( 192.168.5.27) und C auf dem Server (192.168.5.126).

Auflösung des Domänennamens


Da es sich nicht um eine reale Umgebung handelt, lautet der Domänenname nur zu Testzwecken a.com, sodass die Auflösung von a.com nur in festgelegt werden kann hosts-Datei.

Öffnen: C:WindowsSystem32driversetchosts

Fügen Sie

192.168.5.149 am Ende a.com hinzu

Speichern und beenden, dann den Befehlsmodus starten und pingen um zu sehen, ob die Einrichtung erfolgreich war

Auf dem Screenshot wurde a.com erfolgreich in 192.168.5.149IP aufgelöst

Ein Server nginx.conf-Einstellungen

Öffnen Sie nginx.conf, die Datei Der Speicherort befindet sich im Nginx-Installationsverzeichnis conf des Verzeichnisses.

Fügen Sie den folgenden Code im http-Bereich hinzu

upstream a.com {
server 192.168.5.126:80;

server 192.168.5.27:80;

}

server{
listen 80;
server_name a.com;
Proxy_Pass http://a.com;
Proxy_set_header Host $host; Proxy_set_header X -Real-IP $remote_addr;
Proxy_set_header ;
server_name a.com;
root /data0 /htdocs/www; 🎜>Wenn ich auf a.com zugreife, gehe ich zu B bzw. C und schreibe eine index.html-Datei mit unterschiedlichem Inhalt unter den Server, um ihn zu unterscheiden.

Öffnen Sie den Browser, um auf a.com Refresh zuzugreifen. Sie werden feststellen, dass alle Anfragen vom Hauptserver (192.168.5.149) an Server B (192.168.5.27) und Server C (192.168.5.126) verteilt werden. . Erzielter Lastausgleichseffekt.

B-Server-Verarbeitungsseite

C-Server-Verarbeitungsseite

Was passiert, wenn einer der Server ausfällt?

Wird der Zugriff beeinträchtigt, wenn ein Server ausfällt?

Schauen wir uns zunächst das Beispiel an. Nehmen wir basierend auf dem obigen Beispiel an, dass der C-Server 192.168.126 der Maschine ausgefallen ist (da es unmöglich ist, die Ausfallzeit zu simulieren, habe ich den C-Server heruntergefahren). und dann noch einmal besuchen.

Zugriffsergebnisse:


Wir haben festgestellt, dass der C-Server (192.168.5.126) zwar ausgefallen war, dies jedoch keinen Einfluss auf den Website-Zugriff hatte. Auf diese Weise müssen Sie sich keine Sorgen darüber machen, dass die gesamte Site heruntergefahren wird, weil ein bestimmter Computer im Lastausgleichsmodus ausgefallen ist.

Was ist, wenn b.com auch einen Lastausgleich einrichten muss?
Es ist sehr einfach, genau wie bei den.com-Einstellungen. Wie folgt:

Angenommen, die Hauptserver-IP von b.com ist 192.168.5.149 und die Last ist auf die Maschinen 192.168.5.150 und 192.168.5.151 verteilt.

Lösen Sie nun den Domänennamen b auf .com bis 192.168.5.149 auf IP.


Fügen Sie den folgenden Code zur nginx.conf des Hauptservers (192.168.5.149) hinzu:

Upstream b.com {
server 192.168.5.150:80;
server 192.168.5.151:80;
}

server{
server_name b.com;
location / {
Proxy_pass http://b.com;
Proxy_set_header X-Real-IP $re Mote_addr; - For$proxy_add_x_forwarded_for;
server_name;
index index.html;
Nginx speichern und neu starten

Nach Abschluss der folgenden Schritte können Sie die Lastausgleichskonfiguration von b.com implementieren.

Der Hauptserver kann keine Dienste bereitstellen?

In den obigen Beispielen haben wir den Lastausgleich des Hauptservers auf andere Server angewendet, sodass der Hauptserver selbst zur Serverliste hinzugefügt werden kann, sodass er nicht durch die reine Weiterleitungsfunktion eines Servers verschwendet wird , und Ja, wir sind auch an der Erbringung von Dienstleistungen beteiligt.

Wie im obigen Fall drei Server:

A-Server-IP: 192.168.5.149 (Hauptserver)

B-Server-IP: 192.168.5.27

C-Server-IP: 192.168.5.126

Wir lösen den Domänennamen auf Server A auf und leiten ihn dann von Server A an Server B und Server C weiter. Dann führt Server A nur eine Weiterleitungsfunktion aus. Jetzt lassen wir Server A bieten auch Site-Services an.

Lassen Sie es uns zunächst analysieren. Wenn Sie den Hauptserver zum Upstream hinzufügen, können die folgenden zwei Situationen auftreten:


1. Der Hauptserver wird an andere IPs weitergeleitet, und andere IP-Server sind normal . Verarbeitung;

2. Der Hauptserver leitet es an seine eigene IP weiter und weist diese dann immer dem lokalen Computer zu.

Wie kann dieses Problem gelöst werden? Da Port 80 zur Überwachung der Lastausgleichsverarbeitung verwendet wurde, kann Port 80 auf diesem Server nicht mehr zur Verarbeitung von Zugriffsanfragen für a.com verwendet werden und es muss ein neuer verwendet werden. Also haben wir den folgenden Code zur nginx.conf des Hauptservers hinzugefügt:

server{

server_name a.com;

index index.html; /data0 /htdocs/www;

}

Starten Sie nginx neu und geben Sie a.com:8080 in den Browser ein, um zu sehen, ob Sie darauf zugreifen können. Auf das Ergebnis kann normal zugegriffen werden

Da es normal zugegriffen werden kann, können wir den Hauptserver zum Upstream hinzufügen, aber der Port muss geändert werden, wie im folgenden Code gezeigt:

Upstream a.com {

Server 192.168.5.126:80;

Server 127.0.0.1:8080;

🎜>

Da die Hauptserver-IP 192.168 .5.149 oder 1 können hier hinzugefügt werden. 27.0 .0.1 ist akzeptabel, beides bedeutet Zugriff auf sich selbst.


Starten Sie Nginx neu und besuchen Sie dann a.com, um zu sehen, ob es dem Hauptserver zugewiesen wird.

Der Hauptserver kann dem Dienst auch normal beitreten.

Abschließend
Erstens gibt es den Lastausgleich nicht nur bei Nginx. Der berühmte Dingding-Apache hat ihn auch, aber seine Leistung ist möglicherweise nicht so gut wie bei Nginx.

2. Mehrere Server stellen Dienste bereit, der Domänenname wird jedoch nur auf den Hauptserver aufgelöst, und die tatsächliche Server-IP kann ohne Ping abgerufen werden, was ein gewisses Maß an Sicherheit erhöht.

3. Die IP im Upstream ist nicht unbedingt die interne Netzwerk-IP, es kann auch eine externe Netzwerk-IP verwendet werden. Der klassische Fall besteht jedoch darin, dass eine bestimmte IP im LAN dem externen Netzwerk zugänglich gemacht wird und der Domänenname direkt in diese IP aufgelöst wird. Dann leitet der Hauptserver es an die IP des Intranetservers weiter.


4. Wenn ein Server ausfällt, hat dies keinen Einfluss auf den normalen Betrieb der Website.


Ursprüngliche Adresse:

http ://www.php100.com/html/program/nginx/2013/0905/5525.html

Das Obige stellt eine detaillierte Erklärung des Nginx-Lastausgleichskonfigurationsbeispiels vor, einschließlich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage