lvs這種4層的負載均衡是能夠分發除80外的其餘端口通訊的,好比MySQL的,而nginx僅僅支持http,https,mail,haproxy也支持MySQL這種
相比較來講,LVS這種4層的更穩定,能承受更多的請求,而nginx這種7層的更加靈活,能實現更多的個性化需求nginx
LVS是由國人章文嵩開發
流行度不亞於apache的httpd,基於TCP/IP作的路由和轉發,穩定性和效率很高
LVS最新版本基於Linux內核2.6,有好多年不更新了
LVS有三種常見的模式:NAT、DR、IP Tunnel
LVS架構中有一個核心角色叫作分發器(Load balance),它用來分發用戶的請求,還有諸多處理用戶請求的服務器(Real Server,簡稱rs)算法
三臺機器apache
rs2
內網:127.135 網段設置爲133 (克隆chinantfy2,將ip改成135,hostname改爲135)vim
vim /etc/sysconfig/network-scripts/ifcfg-ens33 systemctl restart network.service hostnamectl set-hostname chinantfy-135
systemctl stop firewalld systemctl disable firewalld yum install -y iptables-services systemctl start iptables.service iptables -F service iptables save
在dir上安裝ipvsadm瀏覽器
yum install -y ipvsadm
192.168.40.128是dir的外網ipbash
#! /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.127.0/24 -j MASQUERADE # director設置ipvsadm IPVSADM='/usr/sbin/ipvsadm' $IPVSADM -C $IPVSADM -A -t 192.168.40.128:80 -s wlc -p 3 $IPVSADM -a -t 192.168.40.128:80 -r 192.168.127.134:80 -m -w 1 $IPVSADM -a -t 192.168.40.128:80 -r 192.168.127.135:80 -m -w 1
兩臺rs上都安裝nginx
設置兩臺rs的主頁,作一個區分,也就是說直接curl兩臺rs的ip時,獲得不一樣的結果
瀏覽器裏訪問192.168.40.128,多訪問幾回看結果差別服務器