LVS負載均衡(Linux Virtual Server)
為什么要使用LVS + Nginx
- LVS基于7層 Nginx基于4層 LVS負載比Nginx高的多,效率也高。
- 單個Ngixn壓力大,需要Nginx集群。
- LVS充當Nginx前置的集群調(diào)度折。
- Nginx接收請求來回,LVS只接收不響應(yīng)。
Nginx網(wǎng)絡(luò)拓撲圖

image
LVS網(wǎng)絡(luò)拓撲圖(Real Server 一般用Nginx集群)

image
LVS工作模式
-
NAT (使用模式與Nginx一樣)
image -
TUN 服務(wù)器會暴露在公網(wǎng)
image -
DR直接路由模式服務(wù)器不會暴露在公網(wǎng)
image
搭建LVS DR模式
- 阿里云不支持虛擬ip需購買負載均衡服務(wù),騰訊云支持虛擬ip需要付費購買
- 虛擬機Real Server需要關(guān)閉網(wǎng)絡(luò)管理器 否則可能出現(xiàn)網(wǎng)絡(luò)接口沖突問題
- systemctl stop NetworkManager
- systemctl disable NetworkManager
- 進入cd /etc/sysconfig/network-scripts/目錄查看自己網(wǎng)卡的名字我的是ifcfg-eth0
- 復制一份 cp ifcfg-eth0 ifcfg-eth0:1 并修改成下面的樣式
DEVICE="eth0:1"
BOOTPROTO="static"
ONBOOT="yes"
IPADDR=192.168.0.150
NETMASK=255.255.255.0
- service network restart 重啟網(wǎng)絡(luò)
- ip address 查看發(fā)現(xiàn)多了一個eth0:1的配置
inet 192.168.0.198/24 brd 192.168.0.255 scope global eth0
valid_lft forever preferred_lft forever
inet 192.168.0.150/24 brd 192.168.0.255 scope global secondary eth0:1
valid_lft forever preferred_lft forever
- 安裝ipvsadm 集群工具 yum install ipvsadm
- ipvsadm -Ln 查看集群列表
- 集群服務(wù)器也需要創(chuàng)建虛擬ip,在網(wǎng)卡目錄下 cp ifcfg-lo ifcfg-lo:1(lo是用來返回數(shù)據(jù),用戶不能訪問吧)
- 重復集群服務(wù)器的操作
DEVICE=lo:1
IPADDR=192.168.0.150
NETMASK=255.255.255.255
NETWORK=127.0.0.0
BROADCAST=127.255.255.255
ONBOOT=yes
NAME=loopback
- 刷新 ifup lo
配置ARP(1、請求的目標地址到達對應(yīng)的網(wǎng)絡(luò)接口,才會響應(yīng)請求。2、只在本網(wǎng)卡通告)
- vim /etc/sysctl.conf
# configration for lvs
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
- 刷新 sysctl -p
- 請求是host的ip交給lo:1處理 route add host 192.168.0.150 dev lo:1
- route -n 查看
添加到集群
- ipvsadm -A -t 192.168.0.150:80 -s rr 輪詢方式添加tcp/ip協(xié)議192.168.0.150:80
- ipvsadm -Ln 多出一條記錄
- 添加兩個節(jié)點 -g表示DR模式
- ipvsadm -a -t 192.168.0.150:80 -r 192.168.0.198:80 -g
- ipvsadm -a -t 192.168.0.150:80 -r 192.168.0.199:80 -g
- ipvsadm 不加-p參數(shù)會有300秒的持久化時間 一般用默認就可以


