跳转至

LVS部署

1. 环境准备

lvs服务器:192.168.178.181

web01:192.168.178.151

web02:192.168.178.152

关闭防火墙

2. 两台rs服务器配置

2.1 安装nginx

yum install nginx -y

2.2 修改网站根文件

echo "192.168.178.151">/usr/share/nginx/html/index.html
echo "192.168.178.152">/usr/share/nginx/html/index.html

2.3 启动nginx后,浏览器访问测试

nginx

3. lvs服务器配置

3.1 查看本机是否支持lvs

[root@lvs ~]# lsmod |grep ip_vs
[root@lvs ~]#

3.2 安装ipvsadm工具

yum install ipvsadm -y

3.3 激活ip_vs模块

[root@lvs ~]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

再次查看

[root@lvs ~]# lsmod |grep ip_vs
ip_vs                 145497  0
nf_conntrack          133095  1 ip_vs
libcrc32c              12644  3 xfs,ip_vs,nf_conntrack

3.4 查看本机IP

[root@lvs ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:ca:2b:33 brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.181/24 brd 192.168.178.255 scope global noprefixroute ens32
       valid_lft forever preferred_lft forever
    inet6 fe80::2b7e:3c1f:c7b1:b23c/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

3.5 绑定虚拟IP(假设VIP为192.168.178.182)

[root@lvs ~]# ip addr add 192.168.178.182 dev ens32
[root@lvs ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:ca:2b:33 brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.181/24 brd 192.168.178.255 scope global noprefixroute ens32
       valid_lft forever preferred_lft forever
    inet 192.168.178.182/32 scope global ens32
       valid_lft forever preferred_lft forever
    inet6 fe80::2b7e:3c1f:c7b1:b23c/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

3.6 清空当前的ip_vs规则

ipvsadm -C

3.7 设置lvs超时时间

查看帮助

ipvsadm -h |grep set
ipvsadm --set 30 5 60

3.8 打开dr转发模式

ipvsadm -A -t 192.168.178.182:80 -s wrr -p 20

3.9 将VIP关联到两台rs服务器

ipvsadm -a -t 192.168.178.182:80 -r 192.168.178.151:80 -g -w 1
ipvsadm -a -t 192.168.178.182:80 -r 192.168.178.152:80 -g -w 1

3.10 检查lvs配置情况

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.178.182:80 wrr persistent 20
  -> 192.168.178.151:80           Route   1      0          0
  -> 192.168.178.152:80           Route   1      0          0

4. 再次配置两台rs服务器

4.1 将VIP绑定到本地回环地址

ip addr add 192.168.178.182/32 dev lo
ip addr add 192.168.178.182/32 dev lo
[root@web01 nginx]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:71:38:92 brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.151/24 brd 192.168.178.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe71:3892/64 scope link
       valid_lft forever preferred_lft forever
[root@web01 nginx]#
[root@web01 nginx]#
[root@web01 nginx]# ip addr add 192.168.178.182/32 dev lo
[root@web01 nginx]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet 192.168.178.182/32 scope global lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:71:38:92 brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.151/24 brd 192.168.178.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe71:3892/64 scope link
       valid_lft forever preferred_lft forever
[root@web02 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:ce:1f:ce brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.152/24 brd 192.168.178.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::7ce7:88bf:e8ce:fbaf/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
[root@web02 ~]#
[root@web02 ~]# ip addr add 192.168.178.182/32 dev lo
[root@web02 ~]#
[root@web02 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet 192.168.178.182/32 scope global lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:ce:1f:ce brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.152/24 brd 192.168.178.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::7ce7:88bf:e8ce:fbaf/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

4.2 抑制arp解析

cat >> /etc/sysctl.conf <<EOF
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
EOF

4.3 让内核参数生效

sysctl -p

5. 浏览器访问VIP:192.168.178.182 测试


最后更新: 2022-02-20 13:32:53