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

Lassen Sie uns ausführlich über den Symboldatentyp in ES6 sprechen

Inhaltsverzeichnis Symboldatentyp Der Grund, waru...

Was sind die Unterschiede zwischen xHTML- und HTML-Tags?

Alle Tags müssen klein geschrieben sein In XHTML m...

Die Auswirkungen des Limits auf die Abfrageleistung in MySQL

I. Einleitung Lassen Sie mich zunächst die MySQL-...

Django2.* + Mysql5.7-Entwicklungsumgebung Integrations-Tutorial-Diagramm

Umfeld: MAC_OS 10.12 Python 3.6 MySQL 5.7.25 Djan...

Detaillierte Erläuterung des Grafikbeispiels für Vue-Überwachungsattribute

Inhaltsverzeichnis Was ist die Listener-Eigenscha...

Beispiele für die Verwendung von MySQL-Abdeckungsindizes

Was ist ein Deckungsindex? Das Erstellen eines In...

Nginx-Inhaltscache und allgemeine Parameterkonfigurationsdetails

Anwendungsszenarien: Die Seiten des Projekts müss...

Eine kurze Einführung in die MySQL-Speicher-Engine

1. MySql-Architektur Bevor wir die Speicher-Engin...

Acht gängige SQL-Verwendungsbeispiele in MySQL

Vorwort MySQL setzte auch 2016 seinen starken Wac...

TypeScript-Aufzählungstyp

Inhaltsverzeichnis 1. Übersicht 2. Digitale Aufzä...

Einführung in die Verwendung von Requisiten in Vue

Vorwort: In Vue können Props verwendet werden, um...

Google Translate Tool: Mehrsprachige Webseiten schnell umsetzen

Google China hat ein Übersetzungstool veröffentlic...

So erstellen Sie einen MySQL PXC-Cluster

Inhaltsverzeichnis 1. Einführung in PXC 1.1 Einfü...

Besprechen Sie den Entwicklungstrend der Baidu Encyclopedia UI

<br />Die offizielle Version der Baidu-Enzyk...