nginx+keepalived实现负载均衡和高可用

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

环境准备

IP VIP 环境
客户端 192.168.134.174
Master 192.168.134.170 192.168.134.100 需要配置nginx负载均衡
Backup 192.168.134.172 192.168.134.100 需要配置nginx负载均衡
web1服务器 192.168.134.171

web2服务器

192.168.134.173

1、首先安装nginx服务器(此处采用yum安装)

wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
yum install nginx -y

2、修改nginx的配置文件(配置负载均衡)

cd /etc/nginx/conf.d/
vim web.conf

upstream webPools {
        server 192.168.134.171;
        server 192.168.134.173;
}
server {
  location / {
    proxy_pass http://webPools;
  }
}

3、启动nginx

systemctl start nginx

4、修改keepalived配置文件

主节点:
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL1
}

vrrp_instance VI_1 {
    state MASTER
    # nopreempt
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.134.100
    }
}
备节点
修改:
 state MASTER
    priority 80

此时可以实现keepalived的故障切换和nginx负载均衡,但是如果nginx的主服务器出现故障,那么此时无法实现客户端的正常访问,即需要新的配置来实现高可用,因此,利用·vrrp-script(利用VIP漂移实现服务的可用)去监控集群资源。

5、重新修改keepalived配置文件,添加vrrp-script,在实例中还要调用。

主备节点做一样的修改
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL1
}
vrrp_script check_nginx {  # 自定义资源监控脚本
  script "killall -0 nginx"
  interval 2
}
vrrp_instance VI_1 {
    state MASTER
    # nopreempt
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }

   track_script {
        check__nginx
   }

 virtual_ipaddress {
        192.168.134.100
    }
}

         

6、还可以用脚本检测服务的方法

cat check_#!/bin/bash

total=$(ps -C nginx --no-header | wc -l)

if [ $total -eq 0 ]
then
  nginx_status=1
else
  nginx_status=0
fi

exit $nginx_status




在keepalived文件中也进行修改

vrrp_script check_nginx {
  #script "killall -0 nginx"
  script "/etc/keepalived/check_nginx.sh"
  interval 2
}


7、还有一种使用notify的·方法

写notify.sh脚本

#!/bin/bash

case "$1" in
  master)
    nmap localhost -p 80 | grep "80/tcp open"
    if [ $? -ne 0 ];then
      systemctl start nginx
    fi
    ;;
backup)
  nginx_psr=`ps -C nginx --no-header | wc -l`
  if [ $nginx_psr -ne 0 ];then
    systemctl stop nginx
  fi
  ;;
*)
  echo "Usage:$0 master|backup"
  ;;
esac

chmod +x notify.sh  # 给脚本增加执行权限

然后在keepalived文件中修改就行,修改下面几个地方
vrrp_script check_nginx {
  #script "killall -0 nginx"
  script "/etc/keepalived/check_nginx.sh"
  interval 2
  weight -30
}


   track_script {
        check_nginx
   }

    virtual_ipaddress {
        192.168.134.100
    }
    notify_master "/etc/keepalived/notify.sh master"
    notify_backup "/etc/keepalived/notify.sh backup"
}

8、测试如下:文章来源地址https://www.toymoban.com/news/detail-646255.html

在停掉nginx后,仍旧可以正常访问

systemctl stop nginx
结果如下:
web test page ,ip is 192.168.134.173 192.168.122.1 
web test page ,ip is 192.168.134.171 192.168.122.1 
web test page ,ip is 192.168.134.173 192.168.122.1 
web test page ,ip is 192.168.134.173 192.168.122.1 
web test page ,ip is 192.168.134.171 192.168.122.1 
web test page ,ip is 192.168.134.171 192.168.122.1

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

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

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

相关文章

  • web集群学习:nginx+keepalived实现负载均衡高可用性

    目录 项目架构 一,环境介绍 二,项目部署 在Web服务器上配置Web测试页面 nginx负载均衡配置 配置Nginx_Master 通过vrrp_script实现对集群资源的监控(1通过killall命令探测服务运行状态) 通过vrrp_script实现对集群资源的监控(2、开发检测nginx存活的shell脚本) 三,项目测试 四,实

    2024年02月13日
    浏览(35)
  • 虚拟机中使用Nginx + Keepalived 实现高可用 Web 负载均衡笔记

    物理操作系统:Windows10 虚拟机软件:VMWare Workstation 16 Pro 虚拟操作系统统:CentOS7 Nginx:1.24.0 Keepalived:2.2.8 在VMWare Worksattion中安装了2台CentOS7的虚拟机,桥接方式下IP地址分别为:192.168.0.35、192.168.0.36 VIP IP 主机名 Nginx端口 默认主从 192.168.0.100 192.168.0.35 wongoing01 88 MASTER 192.168

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

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

    2024年02月07日
    浏览(33)
  • LVS-DR模式+keepalived+nginx+tomcat实现动静分离、负载均衡、高可用实验

    实验条件: test2——20.0.0.20——主服务器——ipvsadm、keepalived服务 test3——20.0.0.30——备服务器——ipvsadm、keepalived服务 nginx5——20.0.0.51——后端真实服务器1(tomcat的代理服务器)——nginx服务 nginx6——20.0.0.61——后端真实服务器2(tomcat的代理服务器)——nginx服务 tomcat——

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

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

    2024年02月13日
    浏览(32)
  • 高可用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日
    浏览(33)
  • 基于nginx+keepalived的负载均衡、高可用web集群

    项目描述: 本项目旨在构建一个高性能、高可用的web集群,使用ansible批量部署项目环境,nginx实现七层负载均衡,NFS实现web服务器机器的数据同源,keepalived搭建双VIP实现高可用,Prometheus+grafana实现对LB负载均衡服务器以及NFS服务器的监控。 项目环境: CentOS 7.9、Nginx 1.25.2、

    2024年02月09日
    浏览(28)
  • 使用Python实现爬虫IP负载均衡和高可用集群

    做大型爬虫项目经常遇到请求频率过高的问题,这里需要说的是使用爬虫IP可以提高抓取效率,那么我们通过什么方法才能实现爬虫IP负载均衡和高可用集群,并且能快速的部署并且完成爬虫项目。 通常在Python中实现爬虫ip负载均衡和高可用集群需要一些高级的网络和编程知识

    2024年02月04日
    浏览(41)
  • Nginx+keepalived实现七层的负载均衡

    keepalived是什么?          keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。 keepalived工作原理           keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。 虚拟路由冗余协议 :可以认为是实现路由

    2024年02月06日
    浏览(26)
  • lvs DR模式+基于五台服务器部署keepalived + lvs DR模式架构(前端带路由)负载均衡的高可用集群

    lvs DR 模式+基于五台服务器部署keepalived + lvs DR模式架构(前端带路由)负载均衡的高可用集群 DR 模式一: 客户端:172.20.26.167 LVS服务器:172.20.26.198 后端服务器:172.20.26.218 后端服务器:172.20.26.210 两台后端服务器 yum install nginx tcpdump -y echo \\\"this is 26.218 page\\\" /usr/share/nginx/html/index

    2024年02月19日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包