LVS负载均衡实践

September 16, 2021

这篇文章详细介绍了如何使用LVS进行负载均衡的实践操作。首先,文章列出了所需的服务器IP和角色,然后分别介绍了在LVS服务器和WEB服务器上的配置步骤。在LVS服务器上,主要是安装ipvsadm,配置VIP网卡和使用ipvsadm配置VIP。在WEB服务器上,主要是安装nginx服务,配置index.html文件,修改arp_ignore和arp_announce配置,以及环回接口配置VIP。最后,文章展示了如何在LVS服务器上添加rs,以及如何访问VIP。

机器说明

192.168.199.10lvs服务器、192.168.199.11web服务器1、192.168.199.12web服务器2、192.168.199.100vip。

IP 说明
192.168.199.10 LVS服务器
192.168.199.11 WEB服务器1
192.168.199.12 WEB服务器2
192.168.199.100 VIP(虚拟IP)

LVS服务器

# 安装ipvsadm
[root@localhost ~] yum install ipvsadm -y

# 配置VIP网卡
# 注意!!! 我的网卡是ens33,请根据自己的实际网卡来配置比如eth0网卡
[root@localhost ~] ifconfig ens33:8 192.168.199.100/24

# 使用ipvsadm配置VIP
# -A 参数添加VIP
# -t 参数tcp协议
# 192.168.199.100:80 VIP端口是80
# -s 参数负载算法,rr为轮询
[root@localhost ~] ipvsadm -A -t 192.168.199.100:80 -s rr

WEB服务器1

# 安装nginx服务
[root@localhost ~] yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
[root@localhost ~] wget https://nginx.org/download/nginx-1.21.3.tar.gz && tar -zxf nginx-1.21.3.tar.gz && cd nginx-1.21.3/
[root@localhost ~] ./configure && make && make install
[root@localhost ~] /usr/local/nginx/sbin/nginx

# 配置index.html文件
[root@localhost ~] cat /usr/local/nginx/html/index.html
192.168.199.11

# 修改arp_ignore和arp_announce配置
# 注意!!!我的网卡是ens33,按自己实际网卡来操作,比如eth0目录下
[root@localhost ~] echo 1 > /proc/sys/net/ipv4/conf/ens33/arp_ignore
[root@localhost ~] echo 2 > /proc/sys/net/ipv4/conf/ens33/arp_announce
[root@localhost ~] echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@localhost ~] echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

# 环回接口配置VIP,实现对内可见对外隐藏
# 切记!!! 切记!!! 掩码是4个255
[root@localhost ~] ifconfig lo:2 192.168.199.100 netmask 255.255.255.255

WEB服务器2

操作同WEB服务器1

LVS服务器

# lvs添加rs
# -a 参数添加rs
# -t 参数tcp协议
# 192.168.199.100:80 如上第一配置的vip及端口
# -r rs服务器ip即WEB服务1或WEB服务器2对应的IP
# -g 参数lvs模式,不填默认为DR模式
[root@localhost ~] ipvsadm -a -t 192.168.199.100:80 -r 192.168.199.11 -g
[root@localhost ~] ipvsadm -a -t 192.168.199.100:80 -r 192.168.199.12 -g

# ipvsadm 查看rs情况
# ipvsadm -lnc 会查看当前连接情况
[root@localhost ~] ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.199.100:80 rr
  -> 192.168.199.11:80            Route   1      0          0
  -> 192.168.199.12:80            Route   1      0          0

访问VIP

# 请求结果会轮着来
[root@localhost ~] curl -X GET http://192.168.199.100:80
192.168.199.11
[root@localhost ~] curl -X GET http://192.168.199.100:80
192.168.199.12
其他lvs

IARNO

服务端开发

LVS + Keepalived实现集群高可用

Mac 安装VM虚拟机及网络配置