ipvsadm管理LVS

环境
  • vip:192.168.37.10

  • 前端lvs服务器
    test11:192.168.37.11 lb01
    test11:192.168.37.11 lb02

  • 后端web服务器
    test13:192.168.37.13 nginx01
    test14:192.168.37.14 nginx02

  • 系统版本:centos7.6

安装
  • 安装管理工具:yum -y install ipvsadm
  • 查看当前LVS状态
    [root@test11 ~]# ipvsadm -ln
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
配置
lb服务器上设置
  • 在enp0s3网卡绑定VIP地址(高可用):ip addr add 192.168.37.10/24 dev enp0s3

  • 清除当前所有LVS规则:ipvsadm -C

  • 控制浏览器与lb01的超时时间:ipvsadm --set 30 5 60

  • LVS默认无80端口,需另外添加新的虚拟IP记录->控制lb01与nginx01、nginx02的超时时间:

    ipvsadm -A -t 192.168.37.10:80 -s wrr -p 20
  • 将虚拟服务关联到真实服务上:

    ipvsadm -a -t 192.168.37.10:80 -r 192.168.37.13:80 -g -w 1
    ipvsadm -a -t 192.168.37.10:80 -r 192.168.37.14:80 -g -w 1
  • 查看配置结果

    [root@test11 ~]# 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.37.10:80 wrr persistent 20
    -> 192.168.37.13:80             Route   1      0          0         
    -> 192.168.37.14:80             Route   1      0          0
WEB服务器上设置
  • 在lo网卡绑定VIP地址:ip addr add 192.168.37.10/32 dev lo

  • 修改内核参数抑制ARP响应

    cat >>/etc/sysctl.conf<<EOF            #其目的是为了让rs顺利发送mac地址给客户端
    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
    
    sysctl -p
测试
  • 给web01的服务器设置index.html内容为web01,web02的服务器设置index.html内容为web02

  • 在浏览器上输入:192.168.37.10,可以看到页面显示内容为web02,过一会再刷新一下页面显示的是web01。至此,测试成功

文档更新时间: 2019-07-23 16:46   作者:子木