搭建Keepalived+LVS+Nginx高可用集群负载均衡

原理图

搭建Keepalived+LVS+Nginx高可用集群负载均衡_第1张图片

本博客实现时的ip约定

搭建Keepalived+LVS+Nginx高可用集群负载均衡_第2张图片

1、为两台主备CentOs7服务器安装Keepalived和LVS

安装keepalived:Keepalived安装_p&f°的博客-CSDN博客

安装LVS请看此博客第一点:搭建LVS-DR模式_p&f°的博客-CSDN博客(一、配置LVS节点与ipvsadm)

2、 安装完keepalived后,进入配置目录,修改配置文件(151主节点和152备用节点都要修改,这里先说主节点)

cd /etc/keepalived/

cp keepalived.conf.sample keepalived.conf

vim keepalived.conf

151主节点keepalived.conf配置文件内容如下

! Configuration File for keepalived

global_defs {
   router_id LVS_151
}

vrrp_instance VI_1 {
    state MASTER
    interface ens32
    virtual_router_id 41
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.217.150
    }
}

# 配置集群地址访问的ip+端口,端口和nginx保持一致,都是80
virtual_server 192.168.217.150 80 {
    # 健康检查的时间,单位:秒
    delay_loop 6
    # 配置负载均衡的算法,默认是轮询
    lb_algo rr
    # 设置LVS的模式。NAT|RUN|DR
    lb_kind DR
    # 设置会话持久化的时间
    persistence_timeout 5
    # 协议 -t
    protocol TCP

    # 负载均衡的真实服务器,也就是nginx节点的具体的真实ip地址
    real_server 192.168.217.129 80 {
        # 轮询的默认权重配比设置为1
        weight 1
        # 设置健康检查
        TCP_CHECK {
            # 检查的80 端口 与上面对应
            connect_prot 80
            # 超时时间 2s
            connect_timeout 2
            # 重试次数 2次
            nb_get_retry 2
            # 间隔时间 3s
            delay_before_retry 3
        }
    }


    real_server 192.168.217.130 80 {
        weight 1
    }
    # 设置健康检查
        TCP_CHECK {
            # 检查的80 端口 与上面对应
            connect_prot 80
            # 超时时间 2s
            connect_timeout 2
            # 重试次数 2次
            nb_get_retry 2
            # 间隔时间 3s
            delay_before_retry 3
        }
}

3、清除ipvsadm之前的配置

ipvsadm -C

4、重启keepalived,使得配置文件生效

(我这里是第一次安装,直接启动就行)
/usr/local/keepalived/sbin/keepalived

5、ipvsadm -Ln  查看配置结果

搭建Keepalived+LVS+Nginx高可用集群负载均衡_第3张图片

6、访问虚拟ip 192.168.217.150 正常访问,多次刷新,轮询访问到29和130nginx服务器。至此主节点配置完毕

搭建Keepalived+LVS+Nginx高可用集群负载均衡_第4张图片 

 7、配置备用节点152。

修改keepalived的配置文件,进入到 /etc/keepalived/,把主节点的配置文件keepalived.conf内容复制到备用节点,再修改。内容如下

! Configuration File for keepalived

global_defs {
   router_id LVS_152
}

# 只需修改这里的内容
vrrp_instance VI_1 {
    state BACKUP
    interface ens32
    virtual_router_id 41
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.217.150
    }
}

#以下内容均不需要修改
# 配置集群地址访问的ip+端口,端口和nginx保持一致,都是80
virtual_server 192.168.217.150 80 {
    # 健康检查的时间,单位:秒
    delay_loop 6
    # 配置负载均衡的算法,默认是轮询
    lb_algo rr
    # 设置LVS的模式。NAT|RUN|DR
    lb_kind DR
    # 设置会话持久化的时间
    persistence_timeout 5
    # 协议 -t
    protocol TCP

    # 负载均衡的真实服务器,也就是nginx节点的具体的真实ip地址
    real_server 192.168.217.129 80 {
        # 轮询的默认权重配比设置为1
        weight 1
        # 设置健康检查
        TCP_CHECK {
            # 检查的80 端口 与上面对应
            connect_prot 80
            # 超时时间 2s
            connect_timeout 2
            # 重试次数 2次
            nb_get_retry 2
            # 间隔时间 3s
            delay_before_retry 3
        }
    }


    real_server 192.168.217.130 80 {
        weight 1
    }
    # 设置健康检查
        TCP_CHECK {
            # 检查的80 端口 与上面对应
            connect_prot 80
            # 超时时间 2s
            connect_timeout 2
            # 重试次数 2次
            nb_get_retry 2
            # 间隔时间 3s
            delay_before_retry 3
        }
}

 8、清除备用机ipvsadm之前的配置规则

ipvsadm -C

9、修改了keepalived配置文件,重启,使其生效

(我这里是第一次安装,直接启动就行)
/usr/local/keepalived/sbin/keepalived

10、ipvsadm -Ln  查看配置结果

搭建Keepalived+LVS+Nginx高可用集群负载均衡_第5张图片

测试

1、把其中的任何一台keepalived停止,都可以通过虚拟ip正常访问页面(这里就不演示了)

2、假设再运行过程中,其中一台nginx故障,是否能正常访问页面。

    2.1  把129所在的nginx停止

./nginx -s stop

    2.2  访问虚拟ip。由于129停止,配置中配置了健康检查,它会自动把请求跳转到正常的nginx中,即此时访问的是130的nginx。

搭建Keepalived+LVS+Nginx高可用集群负载均衡_第6张图片

    2.3  查看主节点的集群情况 ipvsadm -Ln,此时确实只有一个130nginx节点

搭建Keepalived+LVS+Nginx高可用集群负载均衡_第7张图片

    2.4  将129服务器的nginx恢复 ./nginx -s reload,根据健康检查,又会把它加回集群中

搭建Keepalived+LVS+Nginx高可用集群负载均衡_第8张图片

 

 

你可能感兴趣的:(nginx,nginx,负载均衡,运维,lvs,Keepalived)