濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 負(fù)載均衡的基本知識(shí)以及使用nginx進(jìn)行負(fù)載均衡的簡(jiǎn)單例子

負(fù)載均衡的基本知識(shí)以及使用nginx進(jìn)行負(fù)載均衡的簡(jiǎn)單例子

熱門(mén)標(biāo)簽:廈門(mén)營(yíng)銷外呼系統(tǒng)平臺(tái) 外呼系統(tǒng)不彈窗 涪陵商都400電話開(kāi)通辦理 柳州市機(jī)器人外呼系統(tǒng)報(bào)價(jià) 智能電話機(jī)器人坐席 云會(huì)外呼系統(tǒng) 申請(qǐng)400電話價(jià)格多少 安陽(yáng)ai電銷機(jī)器人軟件 外呼系統(tǒng)的經(jīng)營(yíng)范圍

nginx一般可以用于七層的負(fù)載均衡,這篇文章將介紹一些負(fù)載均衡的基本知識(shí)以及使用nginx進(jìn)行負(fù)載均衡的簡(jiǎn)單的例子。

四層負(fù)載均衡 vs 七層負(fù)載均衡

經(jīng)常會(huì)說(shuō)七層負(fù)載均衡還是四層負(fù)載均衡,其實(shí)根據(jù)ISO的OSI網(wǎng)絡(luò)模型的所在層的叫法而決定的,nginx因?yàn)樵谑褂胔ttp協(xié)議在應(yīng)用層進(jìn)行負(fù)載均衡的操作,所以被稱為七層負(fù)載均衡。而諸如LVS在TCP層進(jìn)行負(fù)載均衡操作的則被稱為四層負(fù)載均衡。一般來(lái)說(shuō),有如下層的負(fù)載均衡分類:

常見(jiàn)軟件的支持

常見(jiàn)的負(fù)載均衡算法

負(fù)載均衡常見(jiàn)有如下幾種算法:

負(fù)載均衡演示實(shí)例:普通輪詢

接下來(lái)使用nginx來(lái)演示一下如何進(jìn)行普通輪詢:

事前準(zhǔn)備

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

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

啟動(dòng)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 ..."  11 seconds ago   Up 10 seconds    0.0.0.0:9080->80/tcp                         nginx-lb
[root@kong ~]#

nginx代碼段

準(zhǔn)備如下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的方法

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

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

修改前

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

修改后

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

重啟nginx容器

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

確認(rèn)結(jié)果

可以清晰地看到按照順序,進(jìn)行輪詢:

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

負(fù)載均衡演示實(shí)例:權(quán)重輪詢

而在此基礎(chǔ)上,進(jìn)行權(quán)重輪詢只需要加上weight即可

修改default.conf

按照如下修改default.conf

# cp default.conf default.conf.org
# vi default.conf
# diff default.conf default.conf.org
2,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-lb
nginx-lb
[root@kong ~]#

確認(rèn)結(jié)果

可以看到輪詢結(jié)果按照1/3和2/3的比重在進(jìn)行了:

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

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

標(biāo)簽:晉城 南充 蕪湖 綏化 巴中 撫順 孝感 福州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《負(fù)載均衡的基本知識(shí)以及使用nginx進(jìn)行負(fù)載均衡的簡(jiǎn)單例子》,本文關(guān)鍵詞  負(fù)載,均衡,的,基本知識(shí),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《負(fù)載均衡的基本知識(shí)以及使用nginx進(jìn)行負(fù)載均衡的簡(jiǎn)單例子》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于負(fù)載均衡的基本知識(shí)以及使用nginx進(jìn)行負(fù)載均衡的簡(jiǎn)單例子的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    塔城市| 建始县| 江安县| 饶阳县| 襄樊市| 栾川县| 溧水县| 宜都市| 桦南县| 平潭县| 辽阳县| 邢台市| 昭通市| 新野县| 阿瓦提县| 枞阳县| 武胜县| 峨眉山市| 兴化市| 佛坪县| 乡宁县| 英德市| 荥经县| 调兵山市| 沂源县| 乌兰县| 盐源县| 西宁市| 浦县| 纳雍县| 九龙坡区| 大方县| 荔浦县| 莒南县| 库车县| 大理市| 西丰县| 雅安市| 皮山县| 武山县| 弥渡县|