Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Was sind die Nginx-Lastausgleichsstrategien?

Was sind die Nginx-Lastausgleichsstrategien?

(*-*)浩
(*-*)浩Original
2019-07-15 13:40:533748Durchsuche

Im Servercluster übernimmt Nginx die Rolle eines Proxyservers (d. h. Reverse-Proxy). Um eine übermäßige Belastung eines einzelnen Servers zu vermeiden, leitet es Anfragen von Benutzern an verschiedene Server weiter.

Was sind die Nginx-Lastausgleichsstrategien?

Nginx-Lastausgleichsstrategie

Der Lastausgleich wird aus der Liste der Backend-Server verwendet, die im „Upstream“ definiert sind. Modul Wählen Sie einen Server aus, der die Anfrage des Benutzers annehmen soll. Ein einfachstes Upstream-Modul sieht folgendermaßen aus: Der Server im Modul ist die Serverliste:

#动态服务器组
    upstream dynamic_zuoyu {
        server localhost:8080;  #tomcat 7.0
        server localhost:8081;  #tomcat 8.0
        server localhost:8082;  #tomcat 8.5
        server localhost:8083;  #tomcat 9.0
    }

Nachdem die Upstream-Modulkonfiguration abgeschlossen ist, müssen Sie den angegebenen Zugriff auf die Serverliste umkehren:

#其他页面反向代理到tomcat容器
        location ~ .*$ {
            index index.jsp index.html;
            proxy_pass http://dynamic_zuoyu;
        }

Dies ist die einfachste Lastausgleichsinstanz, aber sie reicht nicht aus, um die tatsächlichen Anforderungen zu erfüllen

Derzeit unterstützt das Upstream-Modul des Nginx-Servers 6 Verteilungsarten:

Runde Die Abfragemethode ist die Standardlastausgleichsstrategie des Upstream-Moduls. Jede Anfrage wird nacheinander in chronologischer Reihenfolge an einen anderen Backend-Server verteilt.

Gewichtungsmethode, geben Sie die Wahrscheinlichkeit einer Umfrage basierend auf der Umfragestrategie an.

ip_hash, gibt die Load-Balancer-Zuweisungsmethode basierend auf der Client-IP an. Diese Methode stellt sicher, dass Anfragen vom selben Client immer an denselben Server gesendet werden, um Sitzungssitzungen sicherzustellen. Auf diese Weise hat jeder Besucher festen Zugriff auf einen Back-End-Server, wodurch das Problem gelöst werden kann, dass die Sitzung nicht serverübergreifend erfolgen kann.

least_conn, leitet die Anfrage an den Backend-Server mit weniger Verbindungen weiter. Der Abfragealgorithmus leitet Anfragen gleichmäßig an jedes Backend weiter, sodass ihre Auslastung ungefähr gleich ist. Einige Anfragen dauern jedoch lange, was dazu führt, dass das Backend, in dem sie sich befinden, eine höhere Auslastung aufweist. In diesem Fall kann least_conn einen besseren Lastausgleichseffekt erzielen.

Die Implementierung von Lastausgleichsstrategien von Drittanbietern erfordert die Installation von Plug-Ins von Drittanbietern.

Fair, weisen Sie Anfragen entsprechend der Antwortzeit des Servers zu, und diejenigen mit kurzen Antwortzeiten werden zuerst zugeteilt.

url_hash ordnet Anforderungen entsprechend dem Hash-Ergebnis der aufgerufenen URL zu, sodass jede URL an denselben Back-End-Server weitergeleitet wird und in Verbindung mit Cache-Treffern verwendet werden muss. Mehrere Anfragen für dieselbe Ressource können auf verschiedenen Servern eingehen, was zu unnötigen Mehrfach-Downloads, niedrigen Cache-Trefferraten und einer Verschwendung von Ressourcenzeit führt. Durch die Verwendung von url_hash kann dieselbe URL (d. h. dieselbe Ressourcenanforderung) denselben Server erreichen. Sobald die Ressource zwischengespeichert ist, kann sie beim Empfang einer Anforderung aus dem Cache gelesen werden.

Weitere technische Artikel zum Thema Nginx finden Sie in der Spalte Tutorials zur Nginx-Nutzung, um mehr darüber zu erfahren!

Das obige ist der detaillierte Inhalt vonWas sind die Nginx-Lastausgleichsstrategien?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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