1.原理nginx
基於NAT機制實現。當用戶請求到達director以後,director將請求報文的目標地址(即VIP)改爲選定的realserver地址,同時將報文的目標端口也改爲選定的realserver的相應端口,最後將報文請求發送到指定的realserver。在服務器端獲得數據後,realserver將數據返給director,而director將報文的源地址和源端口改爲VIP和相應端口,而後把數據發送給用戶,完成整個負載調度過程。後端
2 環境及組網搭建bash
全部的虛擬機均是在vmware中搭建的Ubuntu系統,IP分別爲192.168.1.106 192.168.1.109 192.168.1.110,做爲負載均衡調度的虛擬機上應該有兩塊網卡,一個用於提供外部訪問的VIP,一個做爲跟後端RS創建鏈接的RIP(兩個IP能夠不在同一個網段,須要保證RIP和後端的RS在同一網段),所以給106機器增長一塊虛擬網卡服務器
ifconfig eth0:0 192.168.1.10 netmask 255.255.255.255 broadcast 192.168.1.100
因爲這裏我全部的IP都是你可以互相ping通的,所以無需設置默認網關負載均衡
這樣經過ifconfig命令查看的網卡信息爲:curl
給109 110兩臺rs上安裝nginx服務,修改nginx訪問nginx主頁的信息,以下:url
106機器做爲負載均衡器,開啓消息轉發:3d
echo 1 > /proc/sys/net/ipv4/ip_forward
3 經過ipvsadm配置NAT負載均衡server
ipvsadm -A -t 192.168.1.10:9999 -s rr ipvsadm -a -t 192.168.1.10:9999 -r 192.168.1.109:80 -m ipvsadm -a -t 192.168.1.10:9999 -r 192.168.1.110:80 -m
查看配置的ipvs信息blog
經過curl命令訪問虛擬服務,能夠看到lvs按照輪訓的方式依次將消息轉發給109和110處理