Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So verwenden Sie Nginx für den Lastausgleich

So verwenden Sie Nginx für den Lastausgleich

WBOY
WBOYnach vorne
2023-06-03 08:19:121932Durchsuche

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:

So verwenden Sie Nginx für den Lastausgleich

Gemeinsame Softwareunterstützung

So verwenden Sie Nginx für den Lastausgleich

Gemeinsame Lastausgleichsalgorithmen

Zu den gängigen Lastausgleichsalgorithmen gehören die folgenden:

So verwenden Sie Nginx für den Lastausgleich

Lastausgleich Demonstrationsbeispiel: normale Abfrage

Als Nächstes verwenden Sie Nginx, um zu demonstrieren, wie eine normale Abfrage durchgeführt wird:

So verwenden Sie Nginx für den Lastausgleich

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.conf

Sie 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 ~]#

Nach der Änderung

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;
  }
}

Starten Sie den Nginx-Container neu

[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 ~]# curl

Hallo, Service :Benutzerdienst 1: 7001[root@kong ~]# CurlHallo, Service :Benutzerdienst 1: 7002

[root@kong ~]# Curl

Hallo, Dienst :Benutzerdienst 1: 7001[root@kong ~]# CurlHallo, Dienst :Benutzerdienst 1: 7002

[root@kong ~]#

Demonstrationsbeispiel für den Lastausgleich: Gewichtsabfrage


Um eine Gewichtsabfrage durchzuführen, müssen Sie auf dieser Basis nur Gewicht hinzufügen




Standard.conf ändern

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;
  #}
}
#
So verwenden Sie Nginx für den Lastausgleich

Bestätigen Sie das Ergebnis

Sie können sehen, dass die Umfrageergebnisse gemäß dem Verhältnis von 1/3 und 2/3 durchgeführt werden:

[root@kong ~]# curl

Hallo, 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen