真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

LVS是如何實(shí)現(xiàn)web服務(wù)的負(fù)載均衡

創(chuàng)新互聯(lián)公司主營(yíng)潼關(guān)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,APP應(yīng)用開發(fā),潼關(guān)h5微信平臺(tái)小程序開發(fā)搭建,潼關(guān)網(wǎng)站營(yíng)銷推廣歡迎潼關(guān)等地區(qū)企業(yè)咨詢

下文給大家?guī)鞮VS是如何實(shí)現(xiàn)web服務(wù)的負(fù)載均衡,希望能夠給大家在實(shí)際運(yùn)用中帶來一定的幫助,負(fù)載均衡涉及的東西比較多,理論也不多,網(wǎng)上有很多書籍,今天我們就用創(chuàng)新互聯(lián)在行業(yè)內(nèi)累計(jì)的經(jīng)驗(yàn)來做一個(gè)解答。

我們知道LVS項(xiàng)目已提供了一個(gè)實(shí)現(xiàn)可伸縮網(wǎng)絡(luò)服務(wù)的Linux Virtual Server框架。在LVS框架中,提供了含有三種"IP負(fù)載均衡技術(shù)"的IP虛擬

LVS是如何實(shí)現(xiàn)web服務(wù)的負(fù)載均衡

1)ipvsadm語法

ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask] [-b sched-flags]

ipvsadm -D -t|u|f service-address

ipvsadm -C

ipvsadm -R

ipvsadm -S [-n]

ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight] [-x upper] [-y lower]

ipvsadm -d -t|u|f service-address -r server-address

ipvsadm -L|l [options]

ipvsadm -Z [-t|u|f service-address]

ipvsadm --set tcp tcpfin udp

ipvsadm --start-daemon state [--mcast-interface interface] [--syncid syncid]

ipvsadm --stop-daemon state

ipvsadm -h

2)Ipvsadm選項(xiàng)介紹

選項(xiàng)
說明
-A (--add-service)在內(nèi)核的虛擬服務(wù)器列表中添加一條新的虛擬IP記錄。也就是增加一臺(tái)新的虛擬服務(wù)器。虛擬IP也就是虛擬服務(wù)器的IP地址。
-E (--edit-service)編輯內(nèi)核虛擬服務(wù)器列表中的一條虛擬服務(wù)器記錄
-D (--delete-service)刪除內(nèi)核虛擬服務(wù)器列表中的一條虛擬服務(wù)器記錄
-C (--clear)清除內(nèi)核虛擬服務(wù)器列表中的所有規(guī)則
-R (--restore)恢復(fù)虛擬服務(wù)器規(guī)則
-S (--save)保存虛擬服務(wù)器規(guī)則,輸出為-R 選項(xiàng)可讀的格式
-a (--add-server)在內(nèi)核虛擬服務(wù)器列表的一條記錄里添加一條新的Real Server記錄。也就是在一個(gè)虛擬服務(wù)器中增加一臺(tái)新的Real Server
-e (--edit-server)編輯一條虛擬服務(wù)器記錄中的某條Real Server記錄
-d (--delete-server)刪除一條虛擬服務(wù)器記錄中的某條Real Server記錄
-L|-l –list顯示內(nèi)核中虛擬服務(wù)器列
-t說明虛擬服務(wù)器提供的是tcp服務(wù),此選項(xiàng)后面跟如下格式:[virtual-service-address:port] or [real-server-ip:port]
-u說明虛擬服務(wù)器提供的是udp服務(wù),此選項(xiàng)后面跟如下格式:[virtual-service-address:port] or [real-server-ip:port]
-f fwmar說明是經(jīng)過iptables標(biāo)記過的服務(wù)類型
-s此選項(xiàng)后面跟LVS使用的調(diào)度算法;有這樣幾個(gè)選項(xiàng):rr|wrr|lc|wlc|lblc|lblcr|dh|sh。默認(rèn)的調(diào)度算法是: wlc
-p  [timeout]在某個(gè)Real Server上持續(xù)的服務(wù)時(shí)間。也就是說來自同一個(gè)用戶的多次請(qǐng)求,將被同一個(gè)Real Server處理。此參數(shù)一般用于有動(dòng)態(tài)請(qǐng)求的操作中,timeout的默認(rèn)值為360s(幫助文檔寫的是300s)。例如:-p 100,表示持續(xù)服務(wù)時(shí)間為00s。
-r指定Real Server的IP地址,此選項(xiàng)后面跟如下格式:[real-server-ip:port]
-g (--gatewaying)指定LVS 的工作模式為直接路由模式(此模式是LVS 默認(rèn)工作模式)
-i (-ipip)指定LVS 的工作模式為隧道模式
-m (--masquerading)指定LVS 的工作模式為NAT模式
-w (--weight) weight指定Real Server的權(quán)值
-c (--connection)顯示LVS目前的連接信息 例如:ipvsadm -L -c
-L --timeout顯示“tcp tcpfin udp”的timeout值,如:ipvsadm -L --timeout
-L --daemon顯示同步守護(hù)進(jìn)程狀態(tài),例如:ipvsadm -L –daemon
-L  --stats顯示統(tǒng)計(jì)信息,例如:ipvsadm -L –stats
-L  --rate顯示速率信息,例如:ipvsadm -L  --rate

3)說明: 保存添加的虛擬ip記錄和ipvsadm的規(guī)則可以使用service ipvsadm save,還可以用-S或--save。清除所有記錄和規(guī)則除了使用-C,還以使用--clear。


2 web服務(wù)的負(fù)載均衡


1)實(shí)驗(yàn)準(zhǔn)備:準(zhǔn)備4臺(tái)虛擬機(jī)

@@一臺(tái)作為VS服務(wù)器

@@一臺(tái)作為客戶端

@@兩臺(tái)主機(jī)作為web服務(wù)器,當(dāng)然了,不只是web服務(wù)器。這里只是為了實(shí)驗(yàn)方便,web服務(wù)最常見,  

2)網(wǎng)絡(luò)拓?fù)浼暗刂芬?guī)劃

LVS是如何實(shí)現(xiàn)web服務(wù)的負(fù)載均衡

3)環(huán)境配置

為了實(shí)驗(yàn)?zāi)茼樌麑?shí)現(xiàn),關(guān)閉防火墻和selinux;注意這只是實(shí)驗(yàn)環(huán)境中。

[root@vin ~]# iptables -F         # 清空防火墻規(guī)則
[root@vin ~]# setenforce 0        # 臨時(shí)禁用selinux
[root@vin ~]#

4)web服務(wù)器配置

為了讓我們看清楚LVS是如何調(diào)度的,我們特意將兩臺(tái)web服務(wù)器的index.html頁(yè)面設(shè)置的不一樣。

@@安裝服務(wù):

[root@vin ~]# yum install httpd -y 
[root@vin ~]# echo "Linux web1" > /var/www/html/index.html   # 修改主頁(yè),web2的主頁(yè)內(nèi)容修改為L(zhǎng)inux web2

@@設(shè)置路由:只留一個(gè)網(wǎng)卡并且將網(wǎng)關(guān)指向Director

[root@vin ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.14.0    0.0.0.0         255.255.255.0   U     0      0        0 ens33
0.0.0.0         192.168.14.77   0.0.0.0         UG    0      0        0 ens33

5)VS調(diào)度器設(shè)置

@@ 安裝ipvsadm工具

[root@vin ~]# yum install ipvsadm -y        # yum安裝,不過我已經(jīng)安裝了
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Package ipvsadm-1.27-7.el7.x86_64 already installed and latest version
Nothing to do 
[root@vin ~]# mount /dev/sr0 /mnt             # 掛載光盤
mount: /dev/sr0 is write-protected, mounting read-only
[root@vin ~]# rpm -ivh /mnt/Packages/ipvsadm-1.27-7.el7.x86_64.rpm       # rpm安裝
[root@vin ~]#

@@ 開啟核心轉(zhuǎn)發(fā)功能

[root@vin ~]# echo 1 > /proc/sys/net/ipv4/ip_forword

@@ 定義集群服務(wù)

[root@vin ~]# ipvsadm -A -t 172.18.14.100:80 -s wrr
[root@vin ~]# ipvsadm -a -t 172.18.14.100:80 -r 192.168.14.55 -m -w 3     # 定義web1的權(quán)重為3
[root@vin ~]# ipvsadm -a -t 172.18.14.100:80 -r 192.168.14.66 -m -w 1     # 定義web2的權(quán)重為1(默認(rèn)也是1;可省略)
[root@vin ~]# ipvsadm -Ln                         # 查看幾區(qū)服務(wù)     
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.18.14.100:80 wrr
  -> 192.168.14.55:80             Masq    3      0          0 
  -> 192.168.21.66:80             Masq    1      0          0

6)測(cè)試

在客戶端使用for循環(huán)向VIP發(fā)起http訪問請(qǐng)求

[root@vint ~]# for i in {1..10};do curl Linux web1
Linux web1
Linux web2
Linux web2
Linux web2
Linux web1
Linux web2
Linux web2
Linux web2
Linux web1
Linux web2

7)結(jié)果分析

觀察訪問結(jié)果,我們發(fā)現(xiàn),LVS根據(jù)我們的算法WRR(加權(quán)輪詢)及對(duì)應(yīng)的權(quán)重(3,1)進(jìn)行了調(diào)度。

 

3 實(shí)現(xiàn)http與https同時(shí)調(diào)度


方案一:同過添加兩個(gè)集群服務(wù),分別針對(duì)http和https的訪問

1)原理剖析:

要實(shí)現(xiàn)http(上面我們已經(jīng)實(shí)現(xiàn)了)與https的調(diào)度,我們第一步要做的就是:為兩臺(tái)服務(wù)提供CA證書,而且這兩個(gè)服務(wù)器上的CA證書必須完全相同(可以采取先給一個(gè)授權(quán),在復(fù)制到另外一臺(tái)服務(wù)器上),這里我們可以使用Director作為根CA的頒發(fā)機(jī)構(gòu)來頒發(fā)證書,也可以使用web服務(wù)器的自簽名證書。然后我們?cè)赩S服務(wù)器上在添加一個(gè)用于https進(jìn)行調(diào)度的集群服務(wù),從而實(shí)現(xiàn)調(diào)度。

2)在web服務(wù)器上實(shí)現(xiàn)https服務(wù)

@@生成證書:這里就不在說怎么實(shí)現(xiàn)CA了,請(qǐng)參考博客:http://vinsent.blog.51cto.com/13116656/1964034

3)VS上添加集群服務(wù)

[root@vin ~]# ipvsadm -A -t 172.18.14.100:443 -s wrr
[root@vin ~]# ipvsadm -a -t 172.18.14.100:443 -r 192.168.14.55 -m -w 3     # 定義web1的權(quán)重為3
[root@vin ~]# ipvsadm -a -t 172.18.14.100:443 -r 192.168.14.66 -m -w 1     # 定義web2的權(quán)重為1(默認(rèn)也是1;可省略)
[root@vin ~]# ipvsadm -Ln                         # 查看幾個(gè)集群服務(wù)     
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.18.14.100:80 wrr
    -> 192.168.14.55:80             Masq    3      0          0 
    -> 192.168.21.66:80             Masq    1      0          0
TCP  172.18.14.100:443 wrr
    -> 192.168.14.55:443             Masq    3      0          0 
    -> 192.168.21.66:443             Masq    1      0          0

4)測(cè)試

[root@vint ~]# for i in {1..10};do curl http://172.18.14.100;curl


方案二:使用防火墻標(biāo)記,實(shí)現(xiàn)http與https的統(tǒng)一調(diào)度。

1)明晰思路

上面實(shí)現(xiàn)了http與https通過LVS的調(diào)度分別按相應(yīng)算法調(diào)度,但是他們的調(diào)度依然各是各的,我們?cè)趺茨茏孷S服務(wù)將http與https能夠看成一個(gè)服務(wù)進(jìn)行調(diào)度呢,此時(shí)我們想到了Netfilter中的MANGLE表,我們可以在防火墻上做策略,讓訪問我的https和http服務(wù)的請(qǐng)求給他們打上標(biāo)記MARK,這樣,在調(diào)度的時(shí)候,我們只需要根據(jù)MARK實(shí)現(xiàn)調(diào)度即可,至于他是究竟是http還是https我們便不在關(guān)心。

2)在VS上配置iptables規(guī)則

[root@vint ~]# iptables -F
[root@vint ~]# iptables -F -t nat    # 保證防墻上沒有其他規(guī)則干擾;注意:這只是實(shí)驗(yàn)環(huán)境
[root@vint ~]# iptables -A -t mangle PREROUTING -p tcp -m multiport --dport 80,443 \
>-d 172.18.14.100 -j MARK --set-mark 10

3)設(shè)置LVS集群服務(wù)

由于我們將二者集合起來調(diào)度,在Director看來,http訪問與https訪問都是同一個(gè)服務(wù),所以我們想清空原有的集群服務(wù),在重新添加集群服務(wù)。

[root@vint ~]# ipvsadm -C
[root@vint ~]# ipvsadm -Ln         # 確保規(guī)則清除
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port           Forward Weight ActiveConn InActConn    
[root@vint ~]# ipvsadm -Z         # 清空計(jì)數(shù)器
[root@vin ~]# ipvsadm -A -t -f 10 -s wrr
[root@vin ~]# ipvsadm -a -t -f -r 192.168.14.55 -m -w 3     # 定義web1的權(quán)重為3
[root@vin ~]# ipvsadm -a -t -f -r 192.168.14.66 -m -w 1     # 定義web2的權(quán)重為1(默認(rèn)也是1;可省略)

4)測(cè)試

[root@vint ~]# for i in {1..10};do curl http://172.18.14.100;curl https://172.18.14.100;done

看了以上關(guān)于LVS是如何實(shí)現(xiàn)web服務(wù)的負(fù)載均衡,如果大家還有什么地方需要了解的可以在創(chuàng)新互聯(lián)行業(yè)資訊里查找自己感興趣的或者找我們的專業(yè)技術(shù)工程師解答的,創(chuàng)新互聯(lián)技術(shù)工程師在行業(yè)內(nèi)擁有十幾年的經(jīng)驗(yàn)了。

 

 


文章名稱:LVS是如何實(shí)現(xiàn)web服務(wù)的負(fù)載均衡
標(biāo)題來源:
http://weahome.cn/article/jppipe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部