So verwenden Sie Nginx als HTTP -Lastausgleich unter Linux

So verwenden Sie Nginx als HTTP -Lastausgleich unter Linux

Wenn es darum geht, mehrere Anwendungsserver für Redundanz einzurichten, ist Lastausgleich ein häufig verwendeter Mechanismus zur effizienten Verteilung eingehender Serviceanforderungen oder Netzwerkverkehr über eine Gruppe von Back-End-Servern.

Lastausgleich hat mehrere Vorteile, einschließlich einer erhöhten Verfügbarkeit der Anwendungen durch Redundanz, erhöhte Zuverlässigkeit und Skalierbarkeit (mehr Server können im Mix hinzugefügt werden, wenn der Verkehr erhöht wird). Es bringt auch eine verbesserte Anwendungsleistung und viele andere Vorteile mit sich.

Empfohlen zu lesen: Der ultimative Leitfaden zur Sicherung, Härte und Verbesserung der Leistung des NGINX -Webservers

Nginx kann als effizient eingesetzt werden HTTP -Lastausgleich Um eingehende Netzwerkverkehr und Arbeitsbelastung auf eine Gruppe von Anwendungsservern zu verteilen, gibt die Antwort in jedem Fall die Antwort vom ausgewählten Server an den entsprechenden Client zurück.

Die Lastausgleichsmethoden unterstützt von Nginx Sind:

  • Round-Robin - Dies verteilt Anfragen auf die Anwendungsserver in rund-Robin-Weise. Es wird standardmäßig verwendet, wenn keine Methode angegeben ist,
  • am wenigsten verbunden - weist die nächste Anforderung einem weniger belebten Server (den Server mit der geringsten Anzahl aktiver Verbindungen) zu,
  • IP-HASH - wobei eine Hash -Funktion verwendet wird, um zu bestimmen, welcher Server für die nächste Anforderung basierend auf der IP -Adresse des Clients ausgewählt werden soll. Diese Methode ermöglicht eine Sitzungsdauer (binden Sie einen Client an einen bestimmten Anwendungsserver).

Außerdem können Sie Servergewichte verwenden, um zu beeinflussen Nginx Lastausgleichsalgorithmen auf fortgeschrittener. Nginx Unterstützt auch Gesundheitskontrollen, um einen Server als fehlgeschlagen zu markieren (für eine konfigurierbare Zeit ist Standardeinstellung, dass es standardmäßig ist 10 Sekunden) Wenn seine Antwort mit einem Fehler fehlschlägt, vermeidet es, diesen Server für nachfolgende eingehende Anforderungen für einige Zeit auszuwählen.

Dieser praktische Leitfaden zeigt, wie man verwendet Nginx als an HTTP -Lastausgleich Um eingehende Clientanforderungen zwischen zwei Servern zu verteilen, die jeweils eine Instanz derselben Anwendung haben.

Für Testzwecke ist jede Anwendungsinstanz beschriftet (auf der Benutzeroberfläche), um den Server anzugeben, auf dem er ausgeführt wird.

Testumgebungsaufbau

Lastausgleich: 192.168.58.7 Anwendungsserver 1: 192.168.58.5 Anwendungsserver 2: 192.168.58.8 

Auf jedem Anwendungsserver ist jede Anwendungsinstanz so konfiguriert, dass sie mit der Domäne zugegriffen werden kann Tecmintapp.Lan. Angenommen, dies ist eine vollständig registrierte Domäne, würden wir Folgendes in den DNS-Einstellungen hinzufügen.

Ein Rekord @ 192.168.58.7 

In diesem Datensatz wird Client -Anfragen angewiesen, wo die Domain in diesem Fall die Domäne leiten sollte Lastenausgleicher (192.168.58.7). Die DNS A Datensätze akzeptieren nur IPv4 -Werte. Alternativ die /etc/hosts Die Datei auf den Client -Maschinen kann auch zu Testzwecken mit der folgenden Eingabe verwendet werden.

192.168.58.7 Tecmintapp.Lan 

Einrichten von Nginx -Lastausgleich unter Linux

Vor dem Einrichten von Nginx -Lastausgleich müssen Sie installieren Nginx Auf Ihrem Server verwenden Sie den Standardpaket -Manager für Ihre Verteilung wie gezeigt.

$ sudo apt installieren nginx [on Debian/Ubuntu] $ sudo yum install nginx [on CentOS/Rhel] 

Erstellen Sie als Nächstes eine Server -Block -Datei mit dem Namen /etc/nginx/conf.D/Loadbalancer.Conf (Geben Sie einen Namen Ihrer Wahl an).

$ sudo vi/etc/nginx/conf.D/Loadbalancer.Conf 

Kopieren Sie dann die folgende Konfiguration und fügen Sie sie ein und fügen Sie sie ein. Diese Konfiguration standardmäßig für Round-Robin, da keine Lastausgleichsmethode definiert ist.

 Upstream Backend Server 192.168.58.5; Server 192.168.58.8;  server listen 80 default_server; Hören [::]: 80 default_server; server_name tecmintapp.Lan; Ort / proxy_redirect off; proxy_set_header x-real-ip $ remote_addr; proxy_set_header x-forward-for $ proxy_add_x_forwarded_for; proxy_set_header host $ http_host; proxy_pass http: // Backend;  

In der obigen Konfiguration die Proxy_Pass Richtlinie (die an einem Ort angegeben werden sollte, / in diesem Fall) wird verwendet, um eine Anfrage an die HTTP -Server, auf die mit dem Wort Backend verwiesen wird, in die HTTP -Server weiterzugeben Upstream -Richtlinie (Wird verwendet, um eine Gruppe von Servern zu definieren). Außerdem werden die Anfragen zwischen den Servern mit einem gewichteten Rund-Robin-Ausgleichsmechanismus verteilt.

Verwenden Sie die folgende Konfiguration, um den geringsten Verbindungsmechanismus zu verwenden

Upstream -Backend kleinste_Conn; Server 192.168.58.5; Server 192.168.58.8;  

Und zu aktivieren ip_hash Sitzungsdauermechanismus, Verwendung:

Upstream Backend ip_hash; Server 192.168.58.5; Server 192.168.58.8;  

Sie können auch die Lastausgleichsentscheidung mit dem Server beeinflussen Gewichte. Verwenden der folgenden Konfiguration, wenn sechs Anforderungen von Clients vorhanden sind, der Anwendungsserver 192.168.58.5 wird 4 Anfragen zugewiesen und 2 wird gehen 192.168.58.8.

Upstream Backend Server 192.168.58.5 Gewicht = 4; Server 192.168.58.8;  

Speichern Sie die Datei und beenden Sie sie. Stellen Sie dann sicher.

$ sudo nginx -t 

Wenn die Konfiguration in Ordnung ist, starten Sie neu und ermöglichen Sie den Nginx -Dienst, die Änderungen anzuwenden.

$ sudo systemctl neu starten nginx $ sudo systemctl aktivieren nginx 

Testen von Nginx -Lastausgleich unter Linux

Um die zu testen Nginx Laden Sie das Ausgleich, öffnen Sie einen Webbrowser und verwenden Sie die folgende Adresse, um zu navigieren.

http: // tecmintapp.Lan 

Beachten Sie die geladene Anwendungsinstanz, sobald die Website -Schnittstelle geladen wird. Dann die Seite kontinuierlich aktualisieren. Irgendwann sollte die App vom zweiten Server geladen werden, der den Lastausgleich angibt.

Überprüfen Sie den Nginx -Lastausgleich unter Linux

Sie haben gerade gelernt, wie man sich eingerichtet hat Nginx Als HTTP -Lastausgleich unter Linux. Wir möchten Ihre Gedanken zu diesem Leitfaden und insbesondere über das Feedback -Formular unten über das Feedback -Formular kennenlernen. Weitere Informationen finden Sie in der NGINX -Dokumentation zur Verwendung von Nginx als HTTP -Lastausgleicher.