Nginx kann im Allgemeinen für siebenschichtigen Lastausgleich verwendet werden. Dieser Artikel vermittelt einige grundlegende Kenntnisse zum Lastausgleich und zeigt ein einfaches Beispiel für die Verwendung von Nginx zum Lastausgleich. Lastausgleich auf Schicht 4 vs. Lastausgleich auf Schicht 7 Man spricht oft von siebenschichtigem oder vierschichtigem Lastausgleich. Tatsächlich wird es durch den Namen der Schicht des ISO-OSI-Netzwerkmodells bestimmt. Da nginx das http-Protokoll verwendet, um Lastausgleichsvorgänge auf der Anwendungsschicht durchzuführen, wird es als siebenschichtiger Lastausgleich bezeichnet. Lastausgleichsvorgänge wie LVS auf der TCP-Schicht werden als vierschichtiger Lastausgleich bezeichnet. Generell gibt es folgende Load-Balancing-Kategorien: Gemeinsame Softwareunterstützung Gängige Lastausgleichsalgorithmen Es gibt mehrere gängige Lastausgleichsalgorithmen: Beispiel zur Lastverteilungsdemonstration: Normales Polling Als Nächstes verwenden wir nginx, um zu demonstrieren, wie ein normales Polling durchgeführt wird: Vorbereitung Zwei Dienste werden auf den Ports 7001/7002 gestartet, um unterschiedliche Informationen anzuzeigen. Zur Vereinfachung der Demonstration wird mit Tornado ein Spiegel erstellt. Beim Starten des Docker-Containers werden unterschiedliche Parameter übergeben, um die Unterschiede in den Diensten anzuzeigen. [root@kong ~]# docker run -d -p 7001:8080 liumiaocn/tornado:latest python /usr/local/bin/daemon.py "Benutzerdienst 1: 7001" ddba0abd24524d270a782c3fab907f6a35c0ce514eec3159357bded09022ee57 [root@kong ~]# docker run -d -p 7002:8080 liumiaocn/tornado:latest python /usr/local/bin/daemon.py "Benutzerdienst 1: 7002" 95deadd795e19f675891bfcd44e5ea622c95615a95655d1fd346351eca707951 [root@kong ~]# [root@kong ~]# curl http://192.168.163.117:7001 Hallo, Service: Benutzerservice 1: 7001 [root@kong ~]# [root@kong ~]# curl http://192.168.163.117:7002 Hallo, Service: Benutzerservice 1: 7002 [root@kong ~]# Starten Sie nginx [root@kong ~]# docker run -p 9080:80 --name nginx-lb -d nginx 9d53c7e9a45ef93e7848eb3f4e51c2652a49681e83bda6337c89a3cf2f379c74 [root@kong ~]# docker ps |grep nginx-lb 9d53c7e9a45e nginx „nginx -g 'daemon ...“ vor 11 Sekunden. Vor 10 Sekunden aktiv. 0.0.0.0:9080->80/tcp nginx-lb [root@kong ~]# Nginx-Codeausschnitt Bereiten Sie den folgenden Nginx-Codeausschnitt vor und fügen Sie ihn zu /etc/nginx/conf.d/default.conf von Nginx hinzu. http { Upstream nginx_lb { Server 192.168.163.117:7001; Server 192.168.163.117:7002; } Server { hören Sie 80; Servername www.liumiao.cn 192.168.163.117; Standort / { Proxy-Passwort http://nginx_lb; } } So ändern Sie default.conf Dies kann erreicht werden, indem vim im Container installiert, lokal geändert und dann über Docker cp übergeben oder direkt mit sed geändert wird. Wenn Sie vim im Container installieren, verwenden Sie die folgende Methode [root@kong ~]# docker exec -it nginx-lb sh # apt-get update … #apt-get install vim weglassen ...ausgelassen Vor der Änderung # Katze default.conf Server { hören Sie 80; Servername localhost; #Zeichensatz koi8-r; #access_log /var/log/nginx/host.access.log main; Standort / { root /usr/share/nginx/html; Index Index.html Index.htm; } #Fehlerseite 404 /404.html; # Server-Fehlerseiten auf die statische Seite /50x.html umleiten # Fehlerseite 500 502 503 504 /50x.html; Standort = /50x.html { root /usr/share/nginx/html; } # Proxy für die PHP-Skripte an Apache, das auf 127.0.0.1:80 lauscht # #Standort ~ \.php$ { # Proxy-Passwort http://127.0.0.1; #} # Übergeben Sie die PHP-Skripte an den FastCGI-Server, der auf 127.0.0.1:9000 lauscht. # #Standort ~ \.php$ { #Wurzel-HTML; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; #fastcgi_params einschließen; #} # Zugriff auf .htaccess-Dateien verweigern, wenn das Apache-Dokumentenstammverzeichnis # stimmt mit nginx überein # #Standort ~ /\.ht { # alles ablehnen; #} } # Nach # Katze default.conf Upstream nginx_lb { Server 192.168.163.117:7001; Server 192.168.163.117:7002; } Server { hören Sie 80; Servername www.liumiao.cn 192.168.163.117; #Zeichensatz koi8-r; #access_log /var/log/nginx/host.access.log main; Standort / { #root /usr/share/nginx/html; #index index.html index.htm; Proxy-Passwort http://nginx_lb; } #Fehlerseite 404 /404.html; # Server-Fehlerseiten auf die statische Seite /50x.html umleiten # Fehlerseite 500 502 503 504 /50x.html; Standort = /50x.html { root /usr/share/nginx/html; } # Proxy für die PHP-Skripte an Apache, das auf 127.0.0.1:80 lauscht # #Standort ~ \.php$ { # Proxy-Passwort http://127.0.0.1; #} # Übergeben Sie die PHP-Skripte an den FastCGI-Server, der auf 127.0.0.1:9000 lauscht. # #Standort ~ \.php$ { #Wurzel-HTML; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; #fastcgi_params einschließen; #} # Zugriff auf .htaccess-Dateien verweigern, wenn das Apache-Dokumentenstammverzeichnis # stimmt mit nginx überein # #Standort ~ /\.ht { # alles ablehnen; #} } # Starten Sie den Nginx-Container neu. [root@kong ~]# Docker startet nginx-lb neu nginx-lb [root@kong ~]# Bestätigen Sie das Ergebnis Sie können deutlich erkennen, dass die Abfragen in der folgenden Reihenfolge durchgeführt werden:
Lastenausgleichs-Demobeispiel: Gewichtetes Round Robin Auf dieser Grundlage muss bei gewichteten Umfragen lediglich das Gewicht hinzugefügt werden. Ändern Sie default.conf Ändern Sie default.conf wie folgt # cp default.conf default.conf.org # vi default.conf # diff default.conf default.conf.org 2,3c2,3 <Server 192.168.163.117:7001 Gewicht=100; <Server 192.168.163.117:7002 Gewicht=200; --- > Server 192.168.163.117:7001; > Server 192.168.163.117:7002; # Starten Sie den Nginx-Container neu. [root@kong ~]# Docker startet nginx-lb neu nginx-lb [root@kong ~]# Bestätigen Sie das Ergebnis Es ist ersichtlich, dass die Umfrageergebnisse im Verhältnis 1/3 und 2/3 durchgeführt werden:
Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an Das könnte Sie auch interessieren:
|
<<: js verwendet Canvas, um mehrere Bilder in einem Implementierungscode zusammenzuführen
Inhaltsverzeichnis Einführung Unterscheiden Sie z...
Wenn die Seite nicht reagiert, ist die Anzeige de...
Das Erscheinungsbild einer Webseite hängt maßgebl...
In diesem Artikel erfahren Sie, wie Sie mit Vue W...
Gleichhohes Layout Bezieht sich auf das Layout vo...
Um den Inhaltstyp zu lernen, müssen Sie zunächst ...
Im Linux-System gibt es einen Dateityp namens Lin...
Centos7 verwendet Yum, um MySQL zu installieren u...
Unter Linux verwenden wir normalerweise den Befeh...
<br /> Dieser Artikel wurde von Rachel Golds...
Einführung in Nginx Nginx („engine x“) ist ein le...
MySQL 5.7.9 Version sql_mode=only_full_group_by P...
Erste: Code kopieren Der Code lautet wie folgt: &l...
Weitere Informationen zu Bedienelementen finden S...
Im vorherigen Artikel [Detaillierte Erläuterung v...