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

Lösungen für ungültige Nullsegmentbeurteilungen und IFNULL()-Fehler in MySql

MySql Nullfeldbeurteilung und IFNULL-Fehlerverarb...

Einfache Schritte zum Kapseln von Komponenten in Vue-Projekten

Inhaltsverzeichnis Vorwort So kapseln Sie eine To...

So verwenden Sie Anti-Shake und Throttling in Vue

Inhaltsverzeichnis Vorwort Konzept Stabilisierung...

Einführung in das Linux-Netzwerksystem

Inhaltsverzeichnis Netzwerk Informationen Ändern ...

JavaScript zum Erzielen eines Fensteranzeigeeffekts

In diesem Artikel wird der spezifische JavaScript...

Beispiel eines Befehls zur Linux-Hardwarekonfiguration

Hardware-Ansichtsbefehle System # uname -a # Kern...

So deinstallieren Sie MySQL 5.7.19 unter Linux

1. Finden Sie heraus, ob MySQL zuvor installiert ...

Implementierungsprinzip und Prozessanalyse der TCP-Leistungsoptimierung

Drei-Wege-Handshake-Phase Anzahl der Wiederholung...