一,持久連接
儘管我們選擇了LVS的分發方法,但是大多時候我們要保證返回給客戶端的所有響應請求必須來自於同一臺Real Server,這裏我們就要用到LVS Persistence(持久性)。例如,我們都會有這樣的經歷當客戶在電子商務網站上挑選商品時,所挑選的購物車被定向到R1上,當第二件商品的時候被定向到R2上,這個時候由於R1和R2會話信息沒有同步,還有就是當客戶在進行付賬的時候,80端口的http服務會跳轉到443端口的https服務。如何保持這一會話的持久連接呢?
當使用SSL會話的時候,我們常常期望只交換一次密鑰就可以建立永久連接,因此,LVS持久性在SSL會話中經常被用到。
LVS爲了實現持久性,Directory會在內部維護一個連接追蹤記錄(源IP、RS IP,計時器),每一個請求進來的時候,被分給那一個RS,每一個請求會有一個條目,而且連接過去的時間都會有記錄,並且有一定的時間的持久性。
二,實驗案例
https 同一服務器 及證書 配置詳情見本人其他博客內容
配置 realserver1
[root@localhost ~]# cd /var/www/html/
[root@localhost ~]# cd /var/www/html
[root@localhost html]# vim index.html
配置realserver2
[root@localhost ~]# cd /var/www/html/
[root@localhost ~]# cd /var/www/html
[root@localhost html]# vim index.html
director:
[root@station ~]# ipvsadm -C
[root@station ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@station ~]# iptables -t mangle -A PREROUTING -p tcp --dport 80 -d 192.168.145.101 -j MARK --set-mark 10 訪問控制打標籤
[root@station ~]# iptables -t mangle -A PREROUTING -p tcp --dport 443 -d 192.168.145.101 -j MARK --set-mark 10
[root@station ~]# ipvsadm -A -f 10 -s rr -p 1800 -p參數實現持久連接時間
[root@station ~]# ipvsadm -a -f 10 -r 192.168.145.200
[root@station ~]# ipvsadm -a -f 10 -r 192.168.145.201
測試圖
再開一臺server2003作爲另一臺客戶機