Nginx-Konfiguration zum Erreichen eines Lastenausgleichs auf mehreren Servern

Nginx-Konfiguration zum Erreichen eines Lastenausgleichs auf mehreren Servern

Nginx-Lastausgleichsserver: IP: 192.168.0.4 (Nginx-Server)

Webserverliste:

Web1: 192.168.0.5 (Nginx-Node1/Nginx-Web1)

Web2:192.168.0.7 (Nginx-Node2/Nginx-Web2)

Zweck: Wenn Benutzer auf den Nginx-Server zugreifen, wird ihre Last über Nginx auf die Server Web1 und Web2 verteilt.

Nginx-Lastausgleichsserver nginx.conf

Die Konfigurationskommentare lauten wie folgt:

Veranstaltungen
{
verwenden Sie epoll;
Arbeiterverbindungen 65535;
}
http
{
##Upstream-Lastausgleich, vier Planungsalgorithmen##
#Planungsalgorithmus 1: Polling. Jede Anfrage wird in chronologischer Reihenfolge nacheinander einem anderen Backend-Server zugewiesen.
#Bei einem Ausfall eines Backend-Servers wird das fehlerhafte System automatisch entfernt, so dass der Benutzerzugriff nicht beeinträchtigt wird
Upstream-Webhost {
Server 192.168.0.5:6666;
Server 192.168.0.7:6666;
}
#Planungsalgorithmus 2: Gewicht. Sie können Gewichte basierend auf der Maschinenkonfiguration definieren. Je höher das Gewicht, desto größer ist die Wahrscheinlichkeit einer Zuweisung.
Upstream-Webhost {
Server 192.168.0.5:6666 Gewicht=2;
Server 192.168.0.7:6666 Gewicht=3;
}
#Planungsalgorithmus 3: ip_hash. Jede Anfrage wird entsprechend dem Hash-Ergebnis der Zugriffs-IP zugewiesen, sodass Besucher mit derselben IP-Adresse auf einen festen Backend-Server zugreifen.
#Löst effektiv das Sitzungsfreigabeproblem dynamischer Webseiten
Upstream-Webhost {
ip_hash;
Server 192.168.0.5:6666;
Server 192.168.0.7:6666;
}
#Planungsalgorithmus 4: url_hash (muss ein Plug-In eines Drittanbieters installieren). Diese Methode weist Anforderungen entsprechend dem Hash-Ergebnis der Zugriffs-URL zu.
#Das Weiterleiten jeder URL an denselben Backend-Server kann die Effizienz des Backend-Cache-Servers weiter verbessern.
#Nginx selbst unterstützt url_hash nicht. Wenn Sie diesen Planungsalgorithmus verwenden müssen, müssen Sie das Nginx-Hash-Paket installieren
Upstream-Webhost {
Server 192.168.0.5:6666;
Server 192.168.0.7:6666;
Hashwert für $request_uri;
}
#Planungsalgorithmus 5: fair (muss ein Plug-In eines Drittanbieters installieren). Dies ist ein intelligenterer Lastausgleichsalgorithmus als die beiden oben genannten.
#Dieser Algorithmus kann die Last basierend auf der Seitengröße und der Ladezeit intelligent ausgleichen, d. h. Anforderungen basierend auf der Antwortzeit des Back-End-Servers verteilen.
# Priorisieren Sie die kurze Reaktionszeit. Nginx selbst unterstützt Fair nicht. Wenn Sie diesen Planungsalgorithmus verwenden müssen, müssen Sie das Modul upstream_fair von Nginx herunterladen.

#Konfiguration des virtuellen Hosts (mit Planungsalgorithmus 3: ip_hash)
Server
{
hören Sie 80;
Servername mongo.demo.com;
# Reverse-Proxy für "/" aktivieren
Standort / {
Proxy-Passwort http://Webhost;
Proxy_Redirect aus;
Proxy_Set_Header X-Real-IP $Remote_Addr;
#Der Backend-Webserver kann die echte IP des Benutzers über X-Forwarded-For erhalten
proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for;
#Nachfolgend sind einige optionale Reverse-Proxy-Konfigurationen aufgeführt.
Proxy_Set_Header Host $host;
client_max_body_size 10m; #Die maximale Anzahl von Bytes einer einzelnen Datei, die vom Client angefordert werden darf
client_body_buffer_size 128k; #Die maximale Anzahl an Bytes, die der Pufferproxy die Clientanforderung puffert,
proxy_connect_timeout 90; #Nginx-Verbindungstimeout mit dem Backend-Server (Proxy-Verbindungstimeout)
proxy_send_timeout 90; #Datenrückgabezeit des Backend-Servers (Proxy-Sende-Timeout)
proxy_read_timeout 90; #Nach erfolgreicher Verbindung die Antwortzeit des Backend-Servers (Proxy-Empfangs-Timeout)
proxy_buffer_size 4k; #Stellen Sie die Puffergröße des Proxyservers (nginx) ein, um Benutzerheaderinformationen zu speichern
proxy_buffers 4 32k; #proxy_buffers Puffer, die durchschnittliche Webseitengröße ist auf unter 32k eingestellt
proxy_busy_buffers_size 64k; #Puffergröße bei hoher Belastung (proxy_buffers*2)
Proxy_Temp_File_Schreibgröße 64k;
#Legen Sie die Größe des Cache-Ordners fest. Wenn sie größer als dieser Wert ist, wird sie vom Upstream-Server übertragen.
}
}
}
Konfigurieren Sie 192.168.0.4 (Nginx-Server)

Erstellen Sie einen Ordner zum Speichern der Konfigurationsdatei

$ mkdir -p /opt/confs
$ vim /opt/confs/nginx.conf
Veranstaltungen
{
verwenden Sie epoll;
Arbeiterverbindungen 65535;
}
http
{
Upstream-Webhost {
ip_hash;
Server 192.168.0.5:6666;
Server 192.168.0.7:6666;
}
Server
{
hören Sie 80;
Servername mongo.demo.com;
Standort / {
Proxy-Passwort http://Webhost;
Proxy_Redirect aus;
Proxy_Set_Header X-Real-IP $Remote_Addr;
proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for;
Proxy_Set_Header Host $host;
maximale Körpergröße des Kunden: 10 m;
Client-Body-Puffergröße 128k;
Proxy_Verbindungstimeout 90;
Proxy_Sendezeitüberschreitung 90;
Proxy_Lese_Timeout 90;
Proxy-Puffergröße 4k;
Proxy-Puffer 4 32k;
Proxy_Busy_Buffer_Größe 64k;
Proxy_Temp_File_Schreibgröße 64k;
}
}
}
Starten Sie den Lastausgleichsserver 192.168.0.4 (Nginx-Server).

Konfigurieren Sie 192.168.0.5 (Nginx-Node1/Nginx-Web1)

Erstellen Sie einen Ordner zum Speichern von Webseiten

$ mkdir -p /opt/html
$ vim /opt/html/index.html
Der bearbeitete Inhalt lautet wie folgt:

Der Host ist 192.168.0.5 - Knoten 1

Starten Sie 192.168.0.5 (Nginx-Node1/Nginx-Web1)

Konfigurieren Sie 192.168.0.7 (Nginx-Node2/Nginx-Web2)

Erstellen Sie einen Ordner zum Speichern von Webseiten

$ mkdir -p /opt/html
$ vim /opt/html/index.html
Der bearbeitete Inhalt lautet wie folgt:

Der Host ist 192.168.0.7 - Knoten 2

Starten Sie 192.168.0.7 (Nginx-Node2/Nginx-Web2)

Dies ist das Ende dieses Artikels über die Nginx-Konfiguration zum Erreichen des Lastausgleichs mehrerer Server. Weitere relevante Inhalte zum Lastausgleich der Nginx-Konfiguration finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Das Prinzip und die Konfiguration des Nginx-Lastausgleichs sowie der dynamischen und statischen Trennung
  • Konfigurationshandbuch für den Lastenausgleich auf Ebene 4 von Nginx
  • So konfigurieren Sie den Nginx-Lastausgleich
  • Analyse des Prinzips von Nginx + Tomcat zur Erreichung eines Lastausgleichs sowie einer dynamischen und statischen Trennung
  • Was ist Nginx-Lastausgleich und wie wird er konfiguriert?
  • Implementierungsmethode des Nginx+Tomcat-Lastausgleichsclusters
  • Docker Nginx-Container und Tomcat-Container zur Realisierung von Lastausgleich und dynamischen und statischen Trennungsvorgängen
  • Detaillierte Erläuterung zur Verwendung von Nginx + Consul + Upsync zum Erreichen eines dynamischen Lastausgleichs

<<:  Vollständige Anleitung zur Verwendung von Iframes ohne Rahmen oder Ränder (Zusammenfassung der praktischen Erfahrungen)

>>:  So konfigurieren Sie den Whitelist-Zugriff in MySQL

Artikel empfehlen

MySQL-Datenbank muss SQL-Anweisungen kennen (erweiterte Version)

Dies ist eine erweiterte Version. Die Fragen und ...

Ein Artikel zum Verständnis der erweiterten Funktionen von K8S

Inhaltsverzeichnis Erweiterte Funktionen des K8S ...

Reines JavaScript zur Implementierung des Zahlenratespiels

Entwickeln Sie ein Zahlenratespiel, bei dem zufäl...

JavaScript implementiert das Topfschlagen-Spiel von Gray Wolf

1. Projektdokumente 2. Verwenden Sie HTML und CSS...

Methode zur Behebung von IE6-Space-Bugs

Schauen Sie sich den Code an: Code kopieren Der Co...

Detaillierte Erklärung der neuen Erfahrung von Vite

Was ist Vite? (Es ist ein neues Spielzeug im Fron...

Webseiten-Erlebnis: Farbabstimmung für Webseiten

<br />Die Farbe einer Webseite ist entscheid...

Lösung für das Problem des achtstündigen Unterschieds bei der MySQL-Einfügezeit

Lösen Sie das Problem des achtstündigen Zeitunter...

Lösung für SQL Server-Datenbankfehler 5123

Weil ich ein Datenbank-Tutorial habe, das auf SQL...

Auszeichnungssprachen – Nochmal auflisten

Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...

Probleme mit Index und FROM_UNIXTIME in MySQL

Null, Hintergrund Ich habe diesen Donnerstag viel...