lvs的NAT模式介紹html
這種模式藉助iptables的nat表來實現,用戶的請求到分發器後,經過預設的iptables規則,把請求的數據包轉發到後端的服務器上去,這些服務器接收到了請求以後處理請求,而後把處理請求結果在返給分發器,分發器在返回給用戶,這樣分發器就成爲了一種瓶頸,當訪問量很是大的時候分發器請求也很是的大,請求過來大,分發出去也大,最後還得把返回來的結果繼續給用戶,這樣分發器就嚴重的影響了效率,因此說用NAT這種模式,請求量不能太大,通常的規模也就10臺左右,除了說你的分發器的機器配置很高,網卡千兆網卡,用的網線千兆網線,甚至說萬兆光纖,這樣會大大提升效率linux
LVS IP Tunnel模式nginx
分發器跟服務器創建了一個虛擬通道,叫作iptunnel,它實現原理更改了數據包的目的ip,好比說用戶過來請求分發器,分發器和服務器他們有特殊的配置,叫作vip,這幾個角色都須要配置一個公共的ip,這個公共ip的目的是爲了個用戶服務的,好比用戶過來訪問他得知道一個公網ip進行通訊,通訊的時候這個數據包裏邊就包含了目的ip,算法
LVS DR模式vim
輪詢 Round-Robin 簡稱rr 最簡單的也是最容易理解的,用戶請求過來他均衡的把這些請求分發到服務器上他們沒有任何的優劣之分。後端
加權輪詢 Weight Round-Robin wrr,這個比第一種多個權重bash
最小鏈接 Least-Connection lc ,把請求量少的或者說這個服務器上鍊接數比較少的,那就會把新的請求分給鏈接數比較少的服務器上去服務器
三臺機器配置完ip後,把三臺機器的防火牆關掉,在101和102機器上安裝iptables
3臺機器都停掉firewaad,
systemctl stop firewalld
systemc disable firewalld
rs1,rs2都安裝 iptables.service
yum install iptables-services
安裝 完後開啓動服務
systemctl start iptables.service
systemctl enable iptables.service
分別執行如下命令
iptables -F
service iptables save
同時3臺機器都要關閉selinux
昨關閉 setenforce 0
開機再也不啓動
vi /etc/selinux/config負載均衡
開始配置curl
**在dir上安裝ipvsadm是實現lvs的重要工具
[root@100xuni1 ~]# yum install -y ipvsadm
在dir上編寫腳本,vim /usr/local/sbin/lvs_nat.sh//內容以下
[root@100xuni1 ~]# vim /usr/local/sbin/lvs_nat.sh ##寫入如下內容
#! /bin/bash # director 服務器上開啓路由轉發功能 echo 1 > /proc/sys/net/ipv4/ip_forward # 關閉icmp的重定向 echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects # 注意區分網卡名字,阿銘的兩個網卡分別爲ens33和ens37 echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects # director 設置nat防火牆 iptables -t nat -F iptables -t nat -X iptables -t nat -A POSTROUTING -s 192.168.63.0/24 -j MASQUERADE # director設置ipvsadm IPVSADM='/usr/sbin/ipvsadm' $IPVSADM -C $IPVSADM -A -t 192.168.109.109:80 -s lc -p 3 $IPVSADM -a -t 192.168.109.109:80 -r 192.168.63.101:80 -m -w 1 $IPVSADM -a -t 192.168.109.109:80 -r 192.168.63.102:80 -m -w 1
執行下
[root@100xuni1 ~]# sh /usr/local/sbin//lvs_nat.sh ##沒有輸出就是沒有錯誤
兩臺rs上都安裝nginx,編輯主頁
編輯主頁
[root@101xuni2 ~]# vim /share/nginx/html/index.html ##兩臺rs都編輯主頁爲hanshuo2,和hanshuo3 方便測試區分
測試
curl 192.168.142.147,測試可看到分發的不均衡
更改配置文件再測試
[root@100xuni1 ~]# vim /usr/local/sbin/lvs_nat.sh ##$IPVSADM -A -t 192.168.142.147:80 -s wlc -p 3更改成$IPVSADM -A -t 192.168.142.147:80 -s rr
再測試,能夠看到分發的很均衡,測試成功
擴展
lvs 三種模式詳解 http://www.it165.net/admin/html/201401/2248.html
lvs幾種算法 http://www.aminglinux.com/bbs/thread-7407-1-1.html
關於arp_ignore和 arp_announcehttp://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
lvs原理相關的 http://blog.csdn.net/pi9nc/article/details/23380589