前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >28-搭建Keepalived+LVS+Nginx高可用集群负载均衡

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

作者头像
彼岸舞
修改2022-10-04 23:49:27
4780
修改2022-10-04 23:49:27
举报
文章被收录于专栏:java开发的那点事

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

架构图

搭建Keepalived+LVS

为了搭建主备模式架构, 再创建一台192.168.247.139的虚拟机

在138, 139上安装Keepalived, 并注册为系统服务,但是不用修改配置文件

修改主LVS上的Keepalived配置文件

代码语言:javascript
复制
vi /etc/keepalived/keepalived.conf

配置文件

代码语言:javascript
复制
! Configuration File for keepalived

global_defs {
   router_id LVS_138
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.247.150
    }
}

# 配置集群地址访问的IP+端口 端口和Nginx保持一致, 都是80
virtual_server 192.168.247.150 80 {
    # 健康检查的时间, 单位:秒
    delay_loop 6
    # 负载策略 轮询
    lb_algo rr
    # LVS模式 DR
    lb_kind DR
    # 会话持久化时间
    persistence_timeout 5
    # 协议
    protocol TCP

    # 负载均衡的真实服务器, 也就是Nginx的节点真实IP
    real_server 192.168.247.136 80{
        weight 1
        # 设置健康检查
        TCP_CHECK {
            # 检查端口 80
            connect_port 80
            # 超时时间 2s
            connect_timeout 2
            # 重试次数 2次
            nb_get_retry 2
            # 间隔时间 3s
            delay_before_retry 3
        }
    }
    real_server 192.168.247.137 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 2
            nb_get_retry 2
            delay_before_retry 3
        }

    }
}

清除之前的LVS配置

代码语言:javascript
复制
ipvsadm -C

重启Keepalived

代码语言:javascript
复制
systemctl restart keepalived

查看LVS映射表

代码语言:javascript
复制
[root@localhost etc]# 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.247.150:80 rr persistent 5
  -> 192.168.247.136:80           Route   1      0          0
  -> 192.168.247.137:80           Route   1      0          0
[root@localhost etc]#

已经出现了配置

修改备LVS上的Keepalived配置文件

代码语言:javascript
复制
vi /etc/keepalived/keepalived.conf

配置文件

代码语言:javascript
复制
! Configuration File for keepalived

global_defs {
   router_id LVS_139
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 80
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.247.150
    }
}

virtual_server 192.168.247.150 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 5
    protocol TCP

    real_server 192.168.247.136 80{
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 2
            nb_get_retry 2
            delay_before_retry 3
        }
    }
    real_server 192.168.247.137 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 2
            nb_get_retry 2
            delay_before_retry 3
        }

    }
}

重启Keepalived

代码语言:javascript
复制
systemctl restart keepalived

查看LVS的映射表

代码语言:javascript
复制
[root@localhost keepalived]# 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.247.150:80 rr persistent 5
  -> 192.168.247.136:80           Route   1      0          0
  -> 192.168.247.137:80           Route   1      0          0
[root@localhost keepalived]#

已经出现配置

测试高可用

访问测试

可以访问

测试Keepalived停止

手动停止主LVS上的Keepalived

代码语言:javascript
复制
systemctl stop keepalived

再次访问

已经自动切换到备LVS上了

此时恢复主LVS

代码语言:javascript
复制
systemctl start keepalived

150重新绑定回主LVS节点

测试Nginx停止

现在访问的是master

手动停止136上的Nginx

代码语言:javascript
复制
./nginx -s quit

测试访问

就只能访问到备用的Nginx了

LVS的持久化过期时间已经过了,但是还是直接访问137节点了, 查看映射规则

应为136已经被停止, 现在映射表只有137节点

手动恢复136

代码语言:javascript
复制
./nginx

映射表重新加载了136节点, 健康检查生效

到此Keepalived+LVS+NGINX高可用集群负载均衡搭建完成~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 搭建Keepalived+LVS+NGINX高可用集群负载均衡
    • 架构图
      • 搭建Keepalived+LVS
        • 修改主LVS上的Keepalived配置文件
          • 修改备LVS上的Keepalived配置文件
            • 测试高可用
              • 访问测试
              • 测试Keepalived停止
              • 测试Nginx停止
          相关产品与服务
          负载均衡
          负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档