18.7 LVS介紹
18.8 LVS調度算法
18.9/18.10 LVS NAT模式搭建
本質區別在於網絡OSI模型不同,LVS屬於4層,nginx屬於7層
LVS介紹
LVS: NAT/DR/IP Tunnel三種模式,核心角色load Balancer(分發器),處理用戶請求Real Server(簡稱rs)
NAT模式
IP TUNNEL模式
DR模式
LVS調度算法
LVS NAT模式搭建
要組成一個dr(director)和兩個rs(Real Server)的架構進行測試,其中01機器作爲交互內網和外網的VIP需要有兩塊網卡
如下圖先把機器二的克隆,重命名爲03,不重啓需要進入一個子shell(bash),修改03機器的IP地址,vim /etc/sysconfig/network-scripts/ifcfg-eno16777736,修改IP爲192.168.242.130,重啓網卡 systemctl restart network,ifconfig如下圖所示
遠程連接Xshell設置
修改字體並遠程登錄成功如下圖
修改01機器上的另外一張網卡IP信息,如下圖網卡網段爲52,所以在該網卡配置文件中設置成52.147
修改IP,無需設置網關,ifup 網卡, 在windows上的dos界面查看外網是否能ping通它
修改成功後ifdown 網卡,ifup 網卡名,ip addr/if config查看ip,並測試是否能ping通
測試成功
建議yum安裝iptables-services,啓動後並drop iptables規則(即調用一個空的iptables規則,爲防止影響實驗數據)
安裝成功後發現 systemctl start iptables-services顯示unit not found
用rpm -ql iptables-services查看到底有哪些安裝文件
輸入systemctl start iptables;並iptables -nvL查看iptables規則生效
iptables -F清空;service iptables save(調用空的iptables規則)
查看各臺機器上的防火牆selinux,修改配置文件爲disabled(vi /etc/selinux/config中);setenforce 0臨時立即生效爲Permissive
01機器作爲分發器需要把rs1和rs2的網關設置成01分發器的IP(即修改後無法與外界通信,只能和01分發器通信)
重啓網卡
監測網關 route -n
準備工作完畢,NAT測試:
①在dir上安裝ipvsadm(實現LVS的重要工具,和iptables類似)
②在dir上編寫腳本,vim /usr/local/sbin/lvs_nat.sh
③執行腳本 sh /usr/local/sbin/lvs_nat.sh
無報錯信息,說明腳本執行成功
把02.03的rs服務器主頁都做一些修改方便測試信息的提取,如下圖(因爲是克隆機,所以02,03的nginx服務都在該路徑下,修改index.html分別爲liut02,liut03)
如下圖,啓動02,03的nginx,查看80端口是否監聽,curl localhost測試
打開瀏覽器訪問“公網”192.168.52.147(分發器IP)
訪問的是rs2(即03機器)刷新網頁一直都是rs2,由此想到是ipvsadm 規則中的-p 3(含義爲延遲三秒跳轉),去掉該參數並把wlc算法改成rr更爲均配的算法再次測試發現還是如此,可能是瀏覽器緩存的問題,在虛擬機環境中用curl測試,結果如下:
測試成功
下圖爲ipvsadm查看規則的語句 ipvsadm -ln
擴展
lvs 三種模式詳解 http://www.it165.net/admin/html/201401/2248.html
lvs幾種算法 http://www.aminglinux.com/bbs/thread-7407-1-1.html
關於arp_ignore和 arp_announce http://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
lvs原理相關的 http://blog.csdn.net/pi9nc/article/details/23380589