Vierschichtiger Lastausgleich vs. siebenschichtiger Lastausgleich
Es wird oft gesagt, dass der siebenschichtige Lastausgleich oder der vierschichtige Lastausgleich tatsächlich auf der Grundlage des Namens der Schicht des ISO-OSI-Netzwerkmodells entschieden wird. Nginx verwendet das http-Protokoll. Der Lastausgleich wird auf der Anwendungsebene durchgeführt, daher wird er als siebenschichtiger Lastausgleich bezeichnet. Beispielsweise wird LVS, das Lastausgleichsvorgänge auf der TCP-Ebene durchführt, als Lastausgleich der Schicht 4 bezeichnet. Im Allgemeinen gibt es die folgenden Lastausgleichsklassifizierungen:
Gemeinsame Softwareunterstützung
Gemeinsame Lastausgleichsalgorithmen
Zu den gängigen Lastausgleichsalgorithmen gehören die folgenden:
Lastausgleich Demonstrationsbeispiel: normale Abfrage
Als Nächstes verwenden Sie Nginx, um zu demonstrieren, wie eine normale Abfrage durchgeführt wird:
Bereiten Sie sich im Voraus vor
Starten Sie im Voraus zwei Dienste auf den beiden Ports 7001/7002, die zur Anzeige unterschiedlicher Informationen verwendet werden Zur Vereinfachung der Demonstration wurde mit Tornado ein Spiegel erstellt und verschiedene beim Starten des Docker-Containers übergebene Parameter verwendet, um die Unterschiede in den Diensten anzuzeigen. „Nginx starten“
Ändern Sie die Methode default.confSie können den Effekt erzielen, indem Sie vim im Container installieren. Sie können es auch lokal ändern und dann über Docker CP übergeben oder es direkt mit sed ändern. Wenn Sie vim in einem Container installieren, verwenden Sie die folgende Methode
[root@kong ~]# docker run -d -p 7001:8080 liumiaocn/tornado:latest python /usr/local/bin/daemon.py "user service 1: 7001" ddba0abd24524d270a782c3fab907f6a35c0ce514eec3159357bded09022ee57 [root@kong ~]# docker run -d -p 7002:8080 liumiaocn/tornado:latest python /usr/local/bin/daemon.py "user service 1: 7002" 95deadd795e19f675891bfcd44e5ea622c95615a95655d1fd346351eca707951 [root@kong ~]# [root@kong ~]# curl http://192.168.163.117:7001 hello, service :user service 1: 7001 [root@kong ~]# [root@kong ~]# curl http://192.168.163.117:7002 hello, service :user service 1: 7002 [root@kong ~]#
Vor der Änderung
[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 ..." 11 seconds ago up 10 seconds 0.0.0.0:9080->80/tcp nginx-lb [root@kong ~]#
http {
upstream nginx_lb {
server 192.168.163.117:7001;
server 192.168.163.117:7002;
}
server {
listen 80;
server_name www.liumiao.cn 192.168.163.117;
location / {
proxy_pass http://nginx_lb;
}
}
[root@kong ~]# docker exec -it nginx-lb sh # apt-get update ...省略 # apt-get install vim ...省略
Bestätigen Sie das Ergebnis
Sie können das deutlich sehen Befehl, Abfrage durchführen:
[root@kong ~]# curlHallo, Service :Benutzerdienst 1: 7001[root@kong ~]# CurlHallo, Service :Benutzerdienst 1: 7002
[root@kong ~]# CurlHallo, Dienst :Benutzerdienst 1: 7001[root@kong ~]# CurlHallo, Dienst :Benutzerdienst 1: 7002
[root@kong ~]#Demonstrationsbeispiel für den Lastausgleich: Gewichtsabfrage
Standard.conf ändern
Um eine Gewichtsabfrage durchzuführen, müssen Sie auf dieser Basis nur Gewicht hinzufügen
Standard.conf wie folgt ändern
# cat default.conf server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the php scripts to apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the php scripts to fastcgi server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param script_filename /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } #
Starten Sie den Nginx-Container neu
# cat default.conf upstream nginx_lb { server 192.168.163.117:7001; server 192.168.163.117:7002; } server { listen 80; server_name www.liumiao.cn 192.168.163.117; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { #root /usr/share/nginx/html; #index index.html index.htm; proxy_pass http://nginx_lb; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the php scripts to apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the php scripts to fastcgi server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param script_filename /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } #
Sie können sehen, dass die Umfrageergebnisse gemäß dem Verhältnis von 1/3 und 2/3 durchgeführt werden:
[root@kong ~]# curlHallo, Dienst: Benutzerdienst 1 7001
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Nginx für den Lastausgleich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!