LVS+Keepalived-DR模式(Apache)

Environment:4台CentOS机器   

          两台LVS

          两台web服务器

LVS主备的操作,都需要安装ipvsadm和keepalived

LVS主机操作 :

1.更改Keepalived的配置文件

vim /etc/keepalived/keepalived.conf

内容如下,变更见注释 

 5       ! Configuration File for keepalived 2 3 global_defs { 4 notification_email {
      acassen@firewall.loc
6 failover@firewall.loc 7 sysadmin@firewall.loc 8 } 9 notification_email_from Alexandre.Cassen@firewall.loc 10 smtp_server 192.168.200.1 11 smtp_connect_timeout 30 12 router_id LVS_DEVEL 13 } 14 15 vrrp_instance VI_1 { 16 state MASTER #主机master 备份机器BACKUP 17 interface eth0 #根据实际情况填写 如CentOS7的ens32 18 virtual_router_id 51 #广播地址,根据实际情况 19 priority 100     #优先级 主机为max(100) 备份设置为<100即可 20 advert_int 1 21 authentication { 22 auth_type PASS 23 auth_pass 1111 24 } 25 virtual_ipaddress { 26 192.168.152.181 #vip地址(飘逸的ip) 27 } 28 } 29 30 virtual_server 192.168.152.181 80 { #虚拟服务器
    lb_algo
rr          #算法
    lb_kind DR          #模式
31 delay_loop 6 32 nat_mask 255.255.255.0  #子网掩码 33 protocol TCP        #虚拟服务器协议 34 35 real_server 192.168.152.128 80 { #真实服务器web1的ip地址和端口 36 weight 1        #权重 37    notify_down /root/kill.sh #发生如法情况执行脚本用以关闭Keepalived 38 TCP_CHECK {      #健康检查模块 39    conect_port 80 #所需要的端口号 40 connect_timeout 3 41 nb_get_retry 3 42 delay_before_retry 3 43 } 44 }
    real_server 192.168.152.129 80 {
        weight 1
        notify_down  /root/kill.sh
        TCP_CHECK {
            conect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
45 }

编辑停止keepalived脚本

1 #!/bin/bash

2 service keepalived stop 

配置完成后关闭防火墙并启动keepalived

1 service iptables stop

2 setenforce 0

3 service keepalived start 

查看vip是否生成  ip a

web服务器配置

1.安装httpd并创建测试页面

2.增加lo:0,并绑定VIP

3.修改arp级别

4.增加静态路由

5.关闭防火墙

###############################################

全部配置完之后,在LVS主上执行如下命令,查看LVS规则是否增加成功

Ipvsadm -Ln

ifconfig eth1:0 192.168.189.181

Lvs-DR模式配置

1.打开ipv4的网络网口

vim /etc/sysctl.conf

   net.ipv4.ip_forward=1 

sysctl -p

2.Lvs机器添加网络

cp ifcfg-eth0 ifcfg-eth0:1

vim ifcfg-eth0:1

  ipaddr=    181  #虚拟vip的地址

删除dns

service network restart  重启网卡

查看ip是否有ifcfg-eth0:1   ifconfig

3.web1/2机器上操作

cp ifcfg-lo ifcfg-lo:0

vim ifcfg-lo:0  #只留下四行 (网络名称,vip地址,网口,onboot)

 1 lo:0 2 IPADDR= 181 3 NETMASK=255.255.255.255 4 ONBOOT=yes 

重启网卡  service network restart

4.web服务器安装Apache并创建测试页面index.php

5.Lvs添加网口  安装ipvsadm

1 ipvsadm -A -t 192.168.189.181:80 -s rr
2 ipvsadm -Ln
3 ipvsadm -a -t 192.168.189.181:80 -r 192.168.189.138:80 -g
4 ipvsadm -a -t 192.168.189.181:80 -r 192.168.189.139:80 -g
  ipvsadm -Ln

 6.修改内核参数(web1/2)

echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

route add 12.168.189.181 dev lo:0

route -n

完成即成功

service ipvsadm save

原文地址:https://www.cnblogs.com/security-guard/p/11983993.html