广告
返回顶部
首页 > 资讯 > 服务器 >Keepalived如何实现Nginx高可用
  • 279
分享到

Keepalived如何实现Nginx高可用

Keepalived NginxNginx高可用Keepalived Nginx高可用 2022-11-13 19:11:58 279人浏览 八月长安
摘要

目录Keepalived实现Nginx高可用Master上的keepalived.confBackup上的keepalived.confNginx检测脚本check_nginx.sh

Keepalived实现Nginx高可用

Keepalived安装可参考Mysql+Keepalived实现双主热备

Master上的keepalived.conf

global_defs {
    router_id LVS_LEVEL1    #主服务器名称
}
 
vrrp_script check_run {
   script "/usr/local/src/check_nginx.sh"
   interval 5                #5秒执行一次脚本
}
 
vrrp_instance VI_1 {
    state MASTER            #主服务器
    interface eth0            #承载VIP地址到物理接口
    virtual_router_id 51    #虚拟路由器ID号,每个热播组保持一致
    priority 100            #优先级,数值越大优先级越高
    advert_int 1            #检查间隔,默认为1s
    authentication {        #认证信息,每个热播组保持一致
        auth_type PASS      #认证类型
        auth_pass 1111        #密码字串
    }
    virtual_ipaddress {
        192.168.0.200        #VIP地址(内网地址)
    }
    track_script {
        check_run
    }
}

Backup上的keepalived.conf

global_defs {
    router_id LVS_LEVEL2    #备份服务器名称
}
vrrp_script check_run {
    script "/usr/local/src/check_nginx.sh"
    interval 5                #5秒执行一次脚本
}
vrrp_instance VI_1 {
    state BACKUP            #备份服务器
    interface eth0            #承载VIP地址到物理接口
    virtual_router_id 51    #虚拟路由器ID号,每个热播组保持一致
    priority 50                #优先级,数值越大优先级越高
    advert_int 1            #检查间隔,默认为1s
    authentication {        #认证信息,每个热播组保持一致
        auth_type PASS      #认证类型
        auth_pass 1111        #密码字串
    }
    virtual_ipaddress {
        192.168.0.200       #VIP地址(和主服务器设置一样)
    }
    track_script {
        check_run
    }
}

Nginx检测脚本check_nginx.sh

#!/bin/bash
 
A=`ps -C nginx --no-header |wc -l`
#判断nginx是否宕机,如果宕机,尝试重启
if [ $A -eq 0 ];then
    /usr/local/nginx/sbin/nginx
    #等待一会再次检查nginx,如果没有启动成功,则停止keepalived,使其启动备用机
    sleep 5
    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
        killall keepalived
    fi
fi
chmod +x /etc/keepalived/nginx_check.sh

Keepalived+Nginx高可用集群

实验环境

准备2台设备

设备1 192.168.217.11 nginx +keepalived

设备2 192.168.217.12 nginx +keepalived

虚拟ip 192.168.217.3

设备1、2 安装nginx keepalived

(此处设备已安装nginx)

我们在此基础上直接利用yum安装keepalived

更新网络yum源

[root@localhost ~]# wget -O /etc/yum.repos.d/Centos-Base.repo Http://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost ~]# wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
--2022-06-11 17:56:31--  http://mirrors.aliyun.com/repo/epel-7.repo

安装keepalived

[root@localhost ~]# yum -y install keepalived.x86_64 

启动nginx

[root@localhost ~]# cd /usr/src/nginx-1.12.2/
[root@localhost nginx-1.12.2]# killall -9 nginx
[root@localhost nginx-1.12.2]# nginx

修改keepalived配置文件

[root@localhost nginx-1.12.2]# vim /etc/keepalived/keepalived.conf 
vrrp_instance VI_1 {   
    state BACKUP            #主调度器的初始角色(本实验主备MASTER 从BACKUP)
    interface ens33            #修改网卡名称
    virtual_router_id 52      #主id 与从id  不要重复     
    priority 90                 #主调度器的选举优先级   (本实验  主备100  从90  数据越大 优先级越高)
    advert_int 1            
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.217.3                      #虚拟ip   (本实验需设置  同网段  主从一样)
    }
}

查看ip

[root@localhost ~]# ip a
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:c2:15:cf brd ff:ff:ff:ff:ff:ff
    inet 192.168.217.11/24 brd 192.168.217.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.217.3/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::1e6f:d3ee:5554:1f34/64 scope link tentative noprefixroute dadfailed 
       valid_lft forever preferred_lft forever
    inet6 fe80::ac8:77ad:9154:7983/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

重启keepalived

[root@localhost ~]# systemctl start keepalived.service
[root@localhost ~]# systemctl restart keepalived.service

关闭防火墙 内核

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0

验证

[root@localhost ~]# curl 192.168.217.11
‘nginx1'
[root@localhost ~]# curl 192.168.217.12
‘nginx2'
[root@localhost ~]# curl 192.168.217.3
‘nginx1'
[root@localhost ~]# curl 192.168.217.3
‘nginx1'

实验环境 

准备2台设备 双主keepalived

设备1 192.168.217.11 nginx +keepalived

设备2 192.168.217.12 nginx +keepalived

虚拟ip 192.168.217.3

虚拟ip 192.168.217.6

在以上实验基础上

设备1

[root@localhost ~]# vim /etc/keepalived/keepalived.conf 
vrrp_instance VI_1 {     #修改模块名字
    state MASTER     #主调度器的初始角色(本实验主备MASTER 从BACKUP)
    interface ens33      #修改网卡名称
    virtual_router_id 51       #主id 与从id  不要重复     
    priority 100           #主调度器的选举优先级   (本实验  主备100  从90  数据越大 优先级越高)
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.217.3            #虚拟ip   
    }
}


vrrp_instance VI_2 {
    state BACKUP
    interface ens33
    virtual_router_id 53
    priority 90	
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.217.6              
    }
I}

设备2

[root@localhost ~]# vim /etc/keepalived/keepalived.conf 
vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.217.3
    }
}

vrrp_instance VI_2 {
    state MASTER
    interface ens33
    virtual_router_id 53
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.217.6
    }
}

xshell同时开启 命令模式 重启keepalived

[root@localhost ~]# systemctl start keepalived.service
[root@localhost ~]# systemctl restart keepalived.service

查看ip

设备1 飘逸Ip正常

[root@localhost ~]# ip a
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:c2:15:cf brd ff:ff:ff:ff:ff:ff
    inet 192.168.217.11/24 brd 192.168.217.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.217.3/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::1e6f:d3ee:5554:1f34/64 scope link tentative noprefixroute dadfailed 
       valid_lft forever preferred_lft forever
    inet6 fe80::ac8:77ad:9154:7983/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

设备2

[root@localhost ~]# ip a
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:49:b3:a1 brd ff:ff:ff:ff:ff:ff
    inet 192.168.217.12/24 brd 192.168.217.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.217.6/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::1e6f:d3ee:5554:1f34/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

设备1、设备2验证 (此问题暂未解决)

[root@localhost ~]# curl 192.168.217.11
curl: (7) Failed connect to 192.168.217.11:80; 拒绝连接
[root@localhost ~]# curl 192.168.217.12
‘nginx2'
[root@localhost ~]# curl 192.168.217.3
curl: (7) Failed connect to 192.168.217.3:80; 连接超时
[root@localhost ~]# curl 192.168.217.6
curl: (7) Failed connect to 192.168.217.6:80; 连接超时

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Keepalived如何实现Nginx高可用

本文链接: https://www.lsjlt.com/news/170458.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Keepalived如何实现Nginx高可用
    目录Keepalived实现Nginx高可用Master上的keepalived.confBackup上的keepalived.confNginx检测脚本check_nginx.sh...
    99+
    2022-11-13
    Keepalived Nginx Nginx高可用 Keepalived Nginx高可用
  • Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
    1、组件及实现的功能 Keepalived:实现对Haproxy服务的高可用,并采用双主模型配置; Haproxy:实现对Nginx的负载均衡和读写分离; Nginx:实现对HTTP...
    99+
    2022-11-12
  • nginx怎么结合keepalived实现高可用
    本篇内容主要讲解“nginx怎么结合keepalived实现高可用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“nginx怎么结合keepalived实现高可用...
    99+
    2022-10-19
  • 使用nginx+tomcat+keepalived实现高可用的详细步骤
    目录架构设计安装tomcat服务192.168.166.128192.168.166.129安装nginx服务安装keepalived验证架构设计 IP服务应用192.168.16...
    99+
    2022-11-13
  • keepalived实现mysql高可用
    说明:需要3个节点,主节点(202.207.178.6)、从节点(202.207.178.7)、测试节点(202.207.178.8),虚拟地址:202.207.178.4。配置实现mysql数据库主从复制...
    99+
    2022-10-18
  • 高可用keepalived实例
    主从数据库服务器的数据会最终一致(因为mysql复制是异步的,总会存在延迟),看似解决了单点问题,然而该方案并不完美。因为一旦主服务器宕机,必须手动把读写连接切换到原来的从服务器上,而这个过程需要时间,短则...
    99+
    2022-10-18
  • Ubuntu搭建Mysql+Keepalived高可用如何实现
    这篇文章将为大家详细讲解有关Ubuntu搭建Mysql+Keepalived高可用如何实现,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Mysql5.5双机热备实现方案安装两台Mysql安装Mysql5....
    99+
    2023-06-21
  • MySQL高可用架构:mysql+keepalived实现
    系统环境及架构#主机名    系统版本        mysql版本  ip地址 mysqlMaster    centos7.4        mysql5.7        192.168.1.42 ...
    99+
    2022-10-18
  • Keepalived+HAProxy高可用集群K8S实现
    本文采用Keepalived+HAProxy的方式构建高可用集群。当你如果你有硬件负载均衡设备当然更好了。 准备环境: 主机ipk8s-master01192.168.10.4k8s...
    99+
    2022-11-13
  • Nginx+Keepalived主备高可用怎么安装与配置
    本篇内容介绍了“Nginx+Keepalived主备高可用怎么安装与配置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!环境说明:操作系统:C...
    99+
    2023-06-04
  • Centos7 下实现 memcached + keepalived 高可用群集
    memcached + keepalived 高可用群集 memcached介绍 Memcached是一套开源的高性能分布式内存对象缓存系统,它将所有的数据都存储在内存中,因为在内存中会统一维护一张巨大的H...
    99+
    2022-10-18
  • keepalived对nginx进行高可用搭建及原理详解
    目录一、Keepalived介绍二、Keepalived的应用场景三、Keepalived的工作原理1 VRRP协议2 核心组件3 分层工作4 工作状态四、Keepalived使用1...
    99+
    2022-11-13
  • 怎么用Keepalived+HAProxy高可用集群K8S实现
    今天小编给大家分享一下怎么用Keepalived+HAProxy高可用集群K8S实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2023-06-29
  • keepalived+MHA应该如何实现mysql主从高可用集群
    下文给大家带来关于keepalived+MHA应该如何实现mysql主从高可用集群,感兴趣的话就一起来看看这篇文章吧,相信看完keepalived+MHA应该如何实现mysql主从高可用集群对大家多少有点帮...
    99+
    2022-10-18
  • 怎么搭建Keepalived+Nginx+Tomcat高可用负载均衡架构
    这篇文章将为大家详细讲解有关怎么搭建Keepalived+Nginx+Tomcat高可用负载均衡架构,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Nginx的高可用负载均衡架构如下图:为典型的Tomcat...
    99+
    2023-06-02
  • 关于使用Keepalived实现Nginx的自动重启及双主热备高可用问题
    目录1、概述2、使用Keepalived实现Nginx的自动重启2.1 借助Shell脚本,完成Nginx的重启2.2 为脚本赋予运行权限2.3 在Keepalived配置文件中增加...
    99+
    2022-11-12
  • 怎么实现Nginx高可用
    这篇文章主要介绍了怎么实现Nginx高可用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么实现Nginx高可用文章都会有所收获,下面我们一起来看看吧。 准备工作: 192...
    99+
    2022-10-19
  • 如何搭建keepalived+nginx+httpd+dns高可用双主反向代理服务器
    如何搭建keepalived+nginx+httpd+dns高可用双主反向代理服务器,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。rs服务器安装httpd,ip为:192.16...
    99+
    2023-06-05
  • 如何实现keeplied +nginx +tomcat 高可用部署
    这篇文章将为大家详细讲解有关如何实现keeplied +nginx +tomcat 高可用部署,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 Tomcat 部署本次实验是在两台虚拟...
    99+
    2023-06-05
  • mairadb+galera+haproxy+keepalived如何实现mysql负载均衡与高可用
    这篇文章主要介绍了mairadb+galera+haproxy+keepalived如何实现mysql负载均衡与高可用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一:服务器...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作