高可用负载均衡搭建

这篇具有很好参考价值的文章主要介绍了高可用负载均衡搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

高可用负载均衡搭建

主机名 服务IP
nginx-ka-master 172.17.1.131
nginx-ka-backup 172.17.1.132
web1-server 172.17.1.133
web2-server 172.17.1.134
VIP 172.17.1.88

1、安装nginx和keepalived服务

root@haproxy-master:~# apt install keepalived haproxy -y

2、配置keepalived服务

(1)master节点

root@haproxy-master:~# cp /usr/share/doc/keepalived/samples/keepalived.conf.vrrp /etc/keepalived/keepalived.conf
root@haproxy-master:~# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
#全局配置
global_defs {
   notification_email {
     2923035330@qq.com
   }
   notification_email_from keepalived@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id haproxy_master                #主机唯一标识,每个keepalived的节点标识不能相同,若相同会影响切换脚本的执行
   vrrp_skip_check_addr
   #vrrp_strict                            #开启限制,会自动生效防火墙设置,导致无法访问VIP
   vrrp_grap_interval 0
   vrrp_gna_interval 0
   vrrp_mcast_group4 224.0.0.18            #默认组播IP地址,组播地址范围:224.0.0.0-239.255.255.255
}
vrrp_script check_nginx {                  #定义一个负载服务器检测脚本
  script "/usr/bin/killall -0 nginx"       #script后面跟一个shell命令或者脚本绝对路径
  # script "/etc/keepalived/nginx_check.sh" 
  interval 3                              #指定脚本的检查间隔为5秒
  weight  -50                             #权重减少50
  fall 3                                  #如果脚本连续3次检查失败,则认为服务不健康
  rise 1                                  #只要一次检查成功,就认为服务已经恢复。
}

#VRRP虚拟路由器
vrrp_instance master {                            #VRRP实例名称
    state MASTER                                  #keepalived的角色(master or backup)
    interface eth0                                #绑定当前虚拟路由器使用的物理接口,如:eth0,bond0,eth0:1等
    virtual_router_id 50                          #虚拟路由器的唯一标识,0-255 (注意:keepalived的主备应保持一致)
    nopreempt                                     #非抢占模式(注意:主keepalived设置非抢占模式后,备就可以不用了)
    priority 120                                  #虚拟路由器的优先级
    advert_int 1
    virtual_ipaddress {                          #虚拟IP
     #   172.17.1.88                             #指定VIP,不指定网卡,默认为eth0
     #   172.17.1.89 dev eth0                    #指定网卡
        172.17.1.88 dev eth0 label eth0:1
    }
    track_script {                               #调用vrrp_script定义的脚本去监控负载服务器                           
       check_nginx
    }
     notify_master "/usr/bin/systemctl restart nginx.service"
     notify_backup "/usr/bin/systemctl restart nginx.service"
#    notify_master "/etc/keepalived/notify.sh master"  #当前节点成为主节点时触发的脚本
#    notify_backup "/etc/keepalived/notify.sh backup"  #当前节点转为备节点时触发的脚本
#    notify_fault "/etc/keepalived/notify.sh fault"    #当前节点状态转为“失败”状态时通知的脚本
}

(2)backup节点
root@haproxy-backup:~# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
#全局配置
global_defs {
   notification_email {
     2923035330@qq.com
   }
   notification_email_from keepalived@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id haproxy_backup #主机唯一标识,每个keepalived的节点标识不能相同,若相同会影响切换脚本的执行
   vrrp_skip_check_addr
#   vrrp_strict   #开启限制,会自动生效防火墙设置,导致无法访问VIP
   vrrp_grap_interval 0
   vrrp_gna_interval 0
   vrrp_mcast_group4 224.0.0.18
}
vrrp_script check-nginx{
  script "/usr/bin/killall -0 nginx"
  interval 5
  weight -50
  fall 3
  rise 1
}
#VRRP虚拟路由器
vrrp_instance backup { #VRRP实例名称
    state BACKUP
    interface eth0    #绑定当前虚拟路由器使用的物理接口,如:eth0,bond0,eth0:1等
    virtual_router_id 50  #虚拟路由器的唯一标识,0-255
#    nopreempt
    priority 80 #虚拟路由器的优先级
    advert_int 1
    virtual_ipaddress {  #虚拟IP
        172.17.1.88 dev eth0 label eth0:1
    }
    track_script {
       check_nginx
    }
    notify_master "/usr/bin/systemctl restart nginx.service"
    notify_backup "/usr/bin/systemctl restart nginx.service"
}

3、配置nginx负载服务

root@haproxy-backup:~# cat /etc/nginx/nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
	worker_connections 768;
	# multi_accept on;
}

http {
  upstream webserver{
    server 172.17.1.133:80 weight=5 fail_timeout=3s max_fails=3;      #检测后端服务是否正常
    server 172.17.1.134:80 weight=5 fail_timeout=3s max_fails=3;      
  }
  server {
  listen 80;
  server_name 172.17.1.88;
    location /{
      proxy_pass http://webserver;
    }
  }
	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;
	# server_tokens off;
	include /etc/nginx/mime.types;
	default_type application/octet-stream;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
	ssl_prefer_server_ciphers on;
	gzip on;
	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}

4、验证

root@haproxy-master:~# systemctl stop nginx
root@haproxy-master:~# while true;do curl 172.17.1.88 ;sleep 1;done

高可用负载均衡搭建,负载均衡,网络,运维

root@haproxy-backup:~# watch -n 1 hostname -I

高可用负载均衡搭建,负载均衡,网络,运维

root@haproxy-master:~# tcpdump -i eth0 -nn host 224.0.0.18

高可用负载均衡搭建,负载均衡,网络,运维

5、总结

  • keepalived只监测VIP的负载服务器(nginx/haproxy)是否正常,如果不正常就执行切换脚本

  • 后端web服务器是由负载均衡器来判断是否正常

  • keepalived自身的健康是由本身服务的心跳来检测

  • keepalived检测负载是否正常有两种方法判断:

    (1)负载服务的端口或者进程
    (2)服务存活页面是否正常文章来源地址https://www.toymoban.com/news/detail-817212.html

到了这里,关于高可用负载均衡搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 二进制搭建 Kubernetes+部署网络组件+部署CornDNS+负载均衡部署+部署Dashboard

    在master添加hosts 调整内核参数(master) 配置时间同步(所有主机节点) etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,etcd是go语言编写的。 etcd 作为服务发现系统,有以下的特点:

    2024年02月08日
    浏览(45)
  • LVS+KeepAlived高可用负载均衡集群

    高可用集群只需要在调度器上多进行一台或两台(服务器本身的价格比较昂贵,一般备用的服务器的数量会和当前业务创造的价值对等)的设置,就可避免因调度器瘫痪业务中断的风险,所以实现了真正的高可用的效果。 1.普通群集 普通的群集的部署是通过一台度器控制调配

    2024年02月09日
    浏览(80)
  • Nginx 高可用负载均衡(三种模式)

    1、安装keepalived (1)下载 (2)解压 (3)使用configure命令配置安装目录与核心配置文件所在位置: prefix  :keepalived安装的位置sysconf:keepalived核心配置文件所在位置,固定位置,改成其他位置则keepalived启动不了, /var/log/messages 中会报错 sysconf  :keepalived核心配置文件所在位置,固

    2024年02月15日
    浏览(47)
  • keepalived高可用学习 keepalived+nginx高可用负载均衡配置

    1、概述 keepalived是为lvs设计的,用于管理和监控lvs集群系统中各个服务节点的状态,后面又加入了VRRP虚拟路由冗余协议,可以实现路由器高可用,原理是多台提供路由功能的服务器组成一个路由组,一个master和多个backup,master有vip,可以发组播,当backup收不到就认为master挂了

    2024年02月07日
    浏览(43)
  • Nginx负载均衡以及keepalived高可用实验

    目录 一、 Nginx负载均衡的标准和现象 二、什么是keepalived高可用 三、安装 四、配置 五、测试 六、 难点 七、问题及处理 八、总结 Nginx负载均衡通常具有以下标准和现象: 负载均衡算法:Nginx可以使用不同的负载均衡算法选择服务器。默认情况下,它使用轮询算法,但也支

    2024年02月13日
    浏览(48)
  • 高可用keepalived + Nginx 负载均衡器

    准备操作: [root@localhost ~]# systemctl stop firewalld  # 或 systemctl disable --now firewalld [root@localhost ~]# setenforce 0 [root@localhost ~]# cd /etc/yum.repos.d [root@localhost ~]# mv repo.bak/* ./ [root@localhost ~]# yum -y install epel-release [root@localhost ~]# yum install -y keepalived nginx         #epel下载的旧版nginx 没有str

    2024年02月01日
    浏览(45)
  • LVS+Keepalived架构(负载均衡高可用集群)

    普通的群集的部署是通过 一台调度器控制调配多台节点服务器 进行业务请求的处理,但是仅仅是一台调度器,就会存在极大的单点故障风险,当该调度器的链路或则调度器本身出现故障时,就会导致整个业务的无法正常进行  而高可用集群是由 一台主调度器和一台或多台备

    2024年02月12日
    浏览(55)
  • RabbitMQ系列(26)--RabbitMQ实现高可用负载均衡

    前言:我们以往只能连接一个指定的队列,不能自由地连接其他的队列,当我们连接的那个指定队列宕机了,生产者和消费者都没办法往队列发送消息和消费消息,而且生产者和消费者也不能自动的连接到其他正常运行的队列,因为生产者和消费者要连接的队列都写死在了代

    2024年02月13日
    浏览(37)
  • 如何部署LVS + keepalived 负载均衡高可用集群

    一、LVS架构 概念 L4和L7负载均衡的区别 keepalive故障自动切换 抢占与非抢占 二、keepalived管理LVS负载均衡器 LVS集中节点的健康检查 三、部署LVS + keeplived 高可用集群 第一步 关闭防火墙和安全机制          第二步 安装工具 第三步 手动配置模块 第四步 编辑策略配置文件 第五

    2024年02月13日
    浏览(44)
  • 【简单认识LVS+Keepalived负载均衡高可用群集】

    Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。 在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟IP,主服务器会发送VRRP通告信息给备份服务器,当备份服务器收

    2024年02月15日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包