小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

負載均衡器LVS/Nginx如何處理session問題

 mrjbydd 2011-10-28

負載均衡器LVS/Nginx如何處理session問題

時間:2011-01-04 13:32:43  來源:第二電腦網(wǎng)  作者:第二電腦網(wǎng)

  第二電腦網(wǎng)導(dǎo)讀:MC CLARiiON CX4存儲操作系統(tǒng)用的是64位RHEl5.4/Centos5.4,服務(wù)器采用 HP360G6+HP580G5,業(yè)務(wù)系統(tǒng)最前端的防火墻為華賽 USG5000+WAF-T3-500(防DDOS、釣魚式及注入式攻擊等) 拓補一中,如采用Nginx負載均衡器,采用的ip_hash來代替默認的rr方式,即可以將某客戶端IP的請求通過哈希算法定位到同一臺后端web服務(wù)器上,這樣避免了session丟失,解決了session問題...
  正文:

業(yè)務(wù)系統(tǒng)架構(gòu)為:
拓補一:Nginx(master)+keepalived+Nginx(backup)+3臺web集群
+mysql(master-slave)+EMC CLARiiON CX4存儲
拓補二:lvs(master)+keepalived+lvs(backup)    +3臺web集群
+mysql(master-slave)+EMC CLARiiON CX4存儲

操作系統(tǒng)用的是64位RHEl5.4/Centos5.4,服務(wù)器采用
HP360G6+HP580G5,業(yè)務(wù)系統(tǒng)最前端的防火墻為華賽
USG5000+WAF-T3-500(防DDOS、釣魚式及注入式攻擊等)

拓補一中,如采用Nginx負載均衡器,采用的ip_hash來代替默認的rr方式,即可以將某客戶端IP的請求通過哈希算法定位到同一臺后端web服務(wù)器上,這樣避免了session丟失,解決了session問題。
但ip_hash指令無法保證后端服務(wù)器的負載均衡,可能有些后端服務(wù)器接收的請求多,有些后端服務(wù)器接收的請求少;這樣失去了負載均衡的意義。我們的解決方案是將用戶的登錄session信息寫進后端的Mysql數(shù)據(jù)庫,這個在后面的CMS系統(tǒng)中也實現(xiàn)了,效果也不錯;后來我提出了折衷方案,如果Nginx并發(fā)連接數(shù)(即Nginx負載均衡器的NginxStatus的active connections)>2000,即采用將session寫進MySQL數(shù)據(jù)庫的方法;如果并發(fā)數(shù)小的話,ip_hash效果也是相當(dāng)好的。

另外,如果在upstream中添加了ip_hash參數(shù)后,經(jīng)測試發(fā)現(xiàn)后臺的某臺服務(wù)器掛掉后不會自動跳轉(zhuǎn),可建議采用如下寫法:
upstream njzq.com {
     ip_hash;
     server   172.16.94.216:9000 max_fails=0;
     server   172.16.94.217:9000 max_fails=0;
     server   172.16.94.218:9000 max_fails=0;
}

拓補二中,lvs采用的ipvsadm -p方案,persistence-會話保持時間,單位是秒。我一般是設(shè)為120s,這個選項對動態(tài)網(wǎng)站很有用處:當(dāng)用戶從遠程用賬號進行登陸網(wǎng)站時,有了這個會話保持功能,就能把用戶的請求轉(zhuǎn)發(fā)給同一個應(yīng)用服務(wù)器。當(dāng)用戶第一次訪問的時候,他的訪問請求被負載均衡器轉(zhuǎn)給某個真實服務(wù)器,這樣他看到一個登陸頁面,第一次訪問完畢;接著他在登陸框填寫用戶名和密碼,然后提交;這時候,問題就可能出現(xiàn)了—登陸不能成功。因為沒有會話保持,負載均衡器可能會把第2次的請求轉(zhuǎn)發(fā)到其他的服務(wù)器。那么設(shè)置后是不是前面的客戶機跟后面的服務(wù)器都永遠建議連接關(guān)系呢,蠻或是過了120秒后或切換到另一臺真實的物理服務(wù)器呢?我嘗試作了以下實驗,lvs采用單臺,192.168.1.102,VIP為192.168.1.188,后端為二臺web服務(wù)器,192.168.1.103和192.168.1.104。
lvs上面執(zhí)行下列腳本,二臺真實的服務(wù)器下也要執(zhí)行相關(guān)腳本,綁定vip地址192.168.1.188;lvs和真實物理服務(wù)器上分別使用lvs_dr.sh和real.sh腳本[root@ltos lvs]# cat lvs_dr.sh
#!/bin/bash
        
         # website director vip.
         SNS_VIP=192.168.1.188
         SNS_RIP1=192.168.1.103
         SNS_RIP2=192.168.1.104

      . /etc/rc.d/init.d/functions

         logger $0 called with $1

         case "$1" in

         start)
         # set squid vip
         /sbin/ipvsadm --set 30 5 60
         /sbin/ifconfig eth0:0 $SNS_VIP broadcast $SNS_VIP
netmask 255.255.255.255 broadcast $SNS_VIP up
         /sbin/route add -host $SNS_VIP dev eth0:0
         /sbin/ipvsadm -A -t $SNS_VIP:80 -s wlc -p 120
         /sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP1:80 -g -w
1
         /sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP2:80 -g -w
1
         touch /var/lock/subsys/ipvsadm >/dev/null 2>&1

        ;;
stop)
         /sbin/ipvsadm -C
來源:http://www./master/College/Server/nginx/17797.html

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多