当前位置: 首页 > news >正文

keepalived+lvs 对nginx做负载均衡和高可用

 

LVS_Director + KeepAlivedKeepAlived在该项目中的功能:
1. 管理IPVS的路由表(包括对RealServer做健康检查)
2. 实现调度器的HA
http://www.keepalived.orgKeepalived所执行的外部脚本命令建议使用绝对路径
=================================================================================
实施步骤:
1. 主/备调度器安装软件
[root@lvs-keepalived-master ~]# yum -y install ipvsadm keepalived 
[root@lvs-keepalived-slave ~]# yum -y install ipvsadm keepalived
2. Keepalived
lvs-master
[root@ha-proxy-master ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {router_id lvs-keepalived-master    #辅助改为lvs-backup
}vrrp_instance VI_1 {state MASTERinterface ens33                #VIP绑定接口virtual_router_id 80         #VRID 同一组集群,主备一致          priority 100            #本节点优先级,辅助改为50advert_int 1            #检查间隔,默认为1sauthentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.246.110/32}
}virtual_server 192.168.246.110 80 {    #LVS配置delay_loop 6   #健康检查rs时间间隔lb_algo rr     #LVS调度算法lb_kind DR     #LVS集群模式(路由模式)protocol TCP      #健康检查使用的协议real_server 192.168.246.162 80 {weight 1inhibit_on_failure   #当该节点失败时,把权重设置为0,而不是从IPVS中删除TCP_CHECK {          #健康检查connect_port 80   #检查的端口connect_timeout 3  #连接超时的时间}}real_server 192.168.246.163 80 {weight 1inhibit_on_failureTCP_CHECK {connect_timeout 3connect_port 80}}
}[root@lvs-keepalived-slave ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {router_id lvs-keepalived-slave
}vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 80priority 50advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.246.110/24}
}
virtual_server 192.168.246.110 80 {delay_loop 6lb_algo rrlb_kind DRprotocol TCPreal_server 192.168.246.162 80 {weight 1inhibit_on_failureTCP_CHECK {connect_port 80connect_timeout 3}}real_server 192.168.246.163 80 {weight 1inhibit_on_failureTCP_CHECK {connect_timeout 3connect_port 80}}
}
3. 启动KeepAlived(主备均启动)
[root@lvs-keepalived-master ~]# systemctl start keepalived
[root@lvs-keepalived-master ~]# systemctl enable keepalived[root@lvs-keepalived-master ~]# 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.246.110:80 rr persistent 20-> 192.168.246.162:80           Route   1      0          0         -> 192.168.246.163:80           Route   0      0          04. 所有RS配置(nginx1,nginx2)
配置好网站服务器,测试所有RS
[root@test-nginx1 ~]# yum install -y nginx
[root@test-nginx2 ~]# yum install -y nginx
[root@test-nginx1 ~]# ip addr add dev lo 192.168.246.110/32
[root@test-nginx1 ~]# echo "net.ipv4.conf.all.arp_ignore = 1" >> /etc/sysctl.conf
[root@test-nginx1 ~]# sysctl -p
[root@test-nginx1 ~]# echo "web1..." >> /usr/share/nginx/html/index.html
[root@test-nginx1 ~]# systemctl start nginx

注意事项:如果之前配置了vip,导致显示不了vip

需要执行systemctl stop keepalived  #先停止在重启

               systemctl start keepalived  

即可显示vip

相关文章:

  • HTML---列表.表格.媒体元素
  • 低多边形建筑3D模型纹理贴图
  • 淡化了技术指标 还能做现货黄金交易?
  • Maven的settings.xml笔记231208
  • 【嵌入式开发 Linux 常用命令系列 4.2 -- .repo 各个目录介绍】
  • 使用cmake构建Qt6.6的qt quick项目,添加应用程序图标的方法
  • 软件兼容性测试:保障多样化用户体验的重要功能
  • 数据分析基础之《matplotlib(5)—直方图》
  • 分布式环境认证和授权-基于springboot+JWT+拦截器实现-实操+源码下载
  • 什么是 AWS IAM?如何使用 IAM 数据库身份验证连接到 Amazon RDS(上)
  • 【python中类的介绍】
  • jquery实现省市区三级联动
  • 线性回归与逻辑回归:深入解析机器学习的基石模型
  • 计算机网络:应用层(一)
  • web如何实现录制音频,满满干货(上篇)
  • 2018一半小结一波
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • CAP 一致性协议及应用解析
  • Django 博客开发教程 8 - 博客文章详情页
  • echarts花样作死的坑
  • es6(二):字符串的扩展
  • Object.assign方法不能实现深复制
  • Spring Boot MyBatis配置多种数据库
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 编写高质量JavaScript代码之并发
  • 关于List、List?、ListObject的区别
  • 记录一下第一次使用npm
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 容器服务kubernetes弹性伸缩高级用法
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 使用权重正则化较少模型过拟合
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • AI算硅基生命吗,为什么?
  • # Apache SeaTunnel 究竟是什么?
  • #QT项目实战(天气预报)
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (10)ATF MMU转换表
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (附源码)计算机毕业设计大学生兼职系统
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)winform之ListView
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • ??javascript里的变量问题
  • @ConfigurationProperties注解对数据的自动封装
  • @SentinelResource详解
  • @软考考生,这份软考高分攻略你须知道
  • [ IO.File ] FileSystemWatcher