国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

負載均衡的基本知識以及使用nginx進行負載均衡的簡單例子

2024-08-30 12:30:08
字體:
來源:轉載
供稿:網友

nginx一般可以用于七層的負載均衡,這篇文章將介紹一些負載均衡的基本知識以及使用nginx進行負載均衡的簡單的例子。

四層負載均衡 vs 七層負載均衡

經常會說七層負載均衡還是四層負載均衡,其實根據ISO的OSI網絡模型的所在層的叫法而決定的,nginx因為在使用http協議在應用層進行負載均衡的操作,所以被稱為七層負載均衡。而諸如LVS在TCP層進行負載均衡操作的則被稱為四層負載均衡。一般來說,有如下層的負載均衡分類:

負載均衡,nginx

常見軟件的支持

負載均衡,nginx

常見的負載均衡算法

負載均衡常見有如下幾種算法:

負載均衡,nginx

負載均衡演示實例:普通輪詢

接下來使用nginx來演示一下如何進行普通輪詢:

負載均衡,nginx

事前準備

事前在7001/7002兩個端口分別啟動兩個服務,用于顯示不同信息,為了演示方便,使用tornado做了一個鏡像,通過docker容器啟動時傳遞的參數不同用于顯示服務的不同。

[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:7001Hello, Service :User Service 1: 7001[root@kong ~]# [root@kong ~]# curl http://192.168.163.117:7002Hello, Service :User Service 1: 7002[root@kong ~]# 

啟動nginx

[root@kong ~]# docker run -p 9080:80 --name nginx-lb -d nginx 9d53c7e9a45ef93e7848eb3f4e51c2652a49681e83bda6337c89a3cf2f379c74[root@kong ~]# docker ps |grep nginx-lb9d53c7e9a45e    nginx           "nginx -g 'daemon ..."  11 seconds ago   Up 10 seconds    0.0.0.0:9080->80/tcp                         nginx-lb[root@kong ~]#

nginx代碼段

準備如下nginx代碼段將其添加到nginx的/etc/nginx/conf.d/default.conf中

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

修改default.conf的方法

可以通過在容器中安裝vim達到效果,也可以在本地修改然后通過docker cp傳入,或者直接sed修改都可。如果在容器中安裝vim,使用如下方式即可

[root@kong ~]# docker exec -it nginx-lb sh# apt-get update...省略# apt-get install vim...省略

修改前

# cat default.confserver {  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;  #}}#

修改后

# cat default.confupstream 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;  #}}#

重啟nginx容器

[root@kong ~]# docker restart nginx-lbnginx-lb[root@kong ~]#

確認結果

可以清晰地看到按照順序,進行輪詢:

[root@kong ~]# curl http://localhost:9080
Hello, Service :User Service 1: 7001
[root@kong ~]# curl http://localhost:9080
Hello, Service :User Service 1: 7002
[root@kong ~]# curl http://localhost:9080
Hello, Service :User Service 1: 7001
[root@kong ~]# curl http://localhost:9080
Hello, Service :User Service 1: 7002
[root@kong ~]#

負載均衡演示實例:權重輪詢

而在此基礎上,進行權重輪詢只需要加上weight即可

負載均衡,nginx

修改default.conf

按照如下修改default.conf

# cp default.conf default.conf.org# vi default.conf# diff default.conf default.conf.org2,3c2,3<   server 192.168.163.117:7001 weight=100;<   server 192.168.163.117:7002 weight=200;--->   server 192.168.163.117:7001;>   server 192.168.163.117:7002;#

重啟nginx容器

[root@kong ~]# docker restart nginx-lbnginx-lb[root@kong ~]#

確認結果

可以看到輪詢結果按照1/3和2/3的比重在進行了:

[root@kong ~]# curl http://localhost:9080
Hello, Service :User Service 1: 7001
[root@kong ~]# curl http://localhost:9080
Hello, Service :User Service 1: 7002
[root@kong ~]# curl http://localhost:9080
Hello, Service :User Service 1: 7002
[root@kong ~]#

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平罗县| 南昌市| 三门县| 通州市| 色达县| 尼玛县| 武定县| 湖北省| 邯郸市| 赤壁市| 安泽县| 合水县| 望奎县| 博白县| 竹北市| 晋中市| 钟祥市| 剑河县| 健康| 明星| 靖边县| 剑川县| 衢州市| 肃宁县| 贵德县| 玛沁县| 宁津县| 巴林右旗| 准格尔旗| 壤塘县| 阿荣旗| 郴州市| 红桥区| 辽宁省| 绥中县| 南投县| 莱州市| 建平县| 万州区| 根河市| 江门市|