Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Centos7 安装 Keepalived+Nginx 双机热备HA 的正确姿势 并开机自启 实践笔记

Centos7 安装 Keepalived+Nginx 双机热备HA 的正确姿势 并开机自启 实践笔记

作者头像
cookily
发布于 2020-09-11 07:38:17
发布于 2020-09-11 07:38:17
2.1K00
代码可运行
举报
文章被收录于专栏:cookilycookily
运行总次数:0
代码可运行

我使用centos7X64最小化安装 CentOS-7-x86_64-Minimal-1708

挂在github上的个人博客:由hexo强力驱动 个人博客

这样配置的作用,我简单描述下: ①比如一台nginx提供负载均衡到后端服务器集群,假设这台ngixn挂了,那后端的服务器集群也就报销了 ②再换句话说,Keepalived+Nginx是防止挂了一台nginx之后,还有一台nginx继续提供负载均衡服务

准备:两台机子,三个ip(能互通{一般同一个网段})

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nginx_01 ip:192.168.59.128 主机
nginx_02 ip:192.168.59.129 从机
漂浮ip:192.168.59.130

1.配置防火墙:

关闭防火墙和加入放行端口二选一

1.1 直接关闭防火墙(nginx_01 和 nginx_02 都执行)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# firewall-cmd --state
not running
[root@localhost ~]#

1.2 加入放行端口(nginx_01 和 nginx_02 都执行)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
firewall-cmd --zone=public --add-port=80/tcp --permanent #添加放行端口(--permanent永久生效,没有此参数重启后失效)

firewall-cmd –reload #刷新防火墙 使其生效

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
```
firewall-cmd --zone=public --list-ports #查看防火墙放行端口列表
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# firewall-cmd --zone=public --add-port=18080/tcp --permanent #添加放行端口(--permanent永久生效,没有此参数重启后失效)
success
[root@localhost ~]# firewall-cmd --reload #刷新防火墙 使其生效
success
[root@localhost ~]# firewall-cmd --zone=public --list-ports #查看防火墙放行端口列表
80/tcp
[root@localhost ~]#

2、安装keepalived(nginx_01 和 nginx_02 都执行)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install keepalived
keepalived -v

3.先备份配置文件

在nginx_01上配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /etc/keepalived/keepalived.conf

修改成如下内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
! Configuration File for keepalived
global_defs {
    router_id nginx_server_1
}
vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh"
    interval 2
    weight 20
    !weight为正数
    !如果脚本执行结果为0,,Master:weight+priority>Backup:weight+priority(不切换)
    !如果脚本执行结果不为0,Master:priority<Backup:priority+weight(切换)
    !weight为负数
    !如果脚本执行结果为0,,Master:priority>Backup:priority(不切换)
    !如果脚本执行结果不为0,Master:priority+weight<Backup:priority(切换)
    !一般来说,weight的绝对值要大于Master和Backup的priority之差
}
vrrp_instance VI_1 {
    state MASTER
    interface ens33 !网卡接口地址
    virtual_router_id 51
    mcast_src_ip 192.168.59.128 !nginx01 ip
    priority 100
    nopreempt
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111 !认密码 两台nginx密码要一致
    }
    track_script {
        chk_nginx
    }
    virtual_ipaddress {
        192.168.59.222/24 !漂浮ip 可以有多个 回车隔开
    }
}

在nginx_02上配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi /etc/keepalived/keepalived.conf

修改成如下内容

注意:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
state 和主不一样,是BACKUP
route_id 和主不一样
priority 小于主机
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
! Configuration File for keepalived
global_defs {
    router_id nginx_server_2
}
vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh"
    interval 2
    weight 20
    !weight为正数
    !如果脚本执行结果为0,,Master:weight+priority>Backup:weight+priority(不切换)
    !如果脚本执行结果不为0,Master:priority<Backup:priority+weight(切换)
    !weight为负数
    !如果脚本执行结果为0,,Master:priority>Backup:priority(不切换)
    !如果脚本执行结果不为0,Master:priority+weight<Backup:priority(切换)
    !一般来说,weight的绝对值要大于Master和Backup的priority之差
}
vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    mcast_src_ip 192.168.59.129
    priority 90
    nopreempt
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        chk_nginx
    }
    virtual_ipaddress {
        192.168.59.222/24
    }
}

4.检查nginx进程的代码,当nginx进程奔溃后,keepalived自动启动nginx

在nginx_01和nginx_02上都配置一遍

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /etc/keepalived/nginx_check.sh

添加如下代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash

A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
    /usr/sbin/nginx
    sleep 2
    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
        killall keepalived
    fi
fi

5.改成可执行文件

在nginx_01和nginx_02上都配置一遍

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chmod +xxx /etc/keepalived/nginx_check.sh

6.启动和开机自启动

在nginx_01和nginx_02上都配置一遍

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl start keepalived //启动
systemctl enable keepalived //开机自启动
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/06/21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CentOS7 下 keepalived 的安装和配置
安装前准备: yum -y install gcc gcc-c++ autoconf automake make  yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
庞小明
2018/09/19
4.3K0
Nginx + Keepalived 高可用之主从配置
目前主流的解决方案就是 keepalived + nginx 实现 nginx 的故障转移,同时做好监控报警。在自动故障转移的同时能通知到相关的应用负责人检查相关应用,排查隐患,彻底解决问题。
BUG弄潮儿
2021/04/12
1.1K0
Nginx+Keepalived 保障HA高可用
高可用性(high availability)通常用来描述一个系统经过专门的设计,从而减少停工的时间,而保持其服务的高度可用性
Parker
2020/07/21
7210
Keepalived中Master和Backup主备切换机制浅析
在keepalived的VRRP实例配置中会一般会设置Master和Backup来指定初始状态,但是这并不意味着此节点一直就是Master角色。控制节点角色的是Keepalived配置文件中的“priority”值和vrrp_script模块中设置的“weight”值。下面分别分情况对主备机切换机制作详细说明。
loong576
2019/09/10
3.2K0
Keepalived中Master和Backup主备切换机制浅析
【详解】Nginx+keepalived双机热备
在互联网的高可用性服务中,单一的服务节点往往无法满足业务对稳定性和可用性的要求。双机热备是一种常见的高可用性解决方案,它通过两台服务器同时运行相同的服务,并使用 Keepalived 来实现故障转移,确保在主服务器发生故障时,备服务器能够立即接管服务,从而保证服务的连续性。本文将详细介绍如何在 Nginx 环境中部署双机热备方案。
大盘鸡拌面
2025/01/01
2230
Nginx+Keepalived实现服务的高可用
Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,keepalived除了能够管理LVS软件外,还可以作为其他服务的高可用解决方案软件。
胡齐
2019/09/25
8740
Nginx+Keepalived实现服务的高可用
Nginx+Keepalived 集群高可用
为保证业务7*24小时不间断运行从而提供高效、稳定、可靠的信息化服务,前端采双Nginx+Keepalived,Nginx反向代理到后端文件集群实现负载均衡(Load Balancing),Keepalived实现集群高可用(High Available),主Nginx故障后虚拟IP自动漂移到备Nginx。
Kevin song
2021/03/24
1.2K0
Nginx+Keepalived 集群高可用
Nginx + Keepalived 高可用之主从配置 二
上篇 [ Nginx + Keepalived 高可用之主从配置 ],在执行以下命令时
BUG弄潮儿
2021/04/12
3250
备胎的养成记KeepAlived实现热备负载
  在  入坑系列之HAProxy负载均衡 中已经详细讲过了怎么将高并发的请求按均衡算法分发到几台服务器上做均衡防止单机崩溃。   但这样的话有没有发现所有请求都经过了HAproxy代理,自然当并发量越来越高时HAproxy就成了瓶颈,突发时HAproxy就会挂掉,或HAproxy服务器出现故障,这时外部唯一的请求入口没有了,怎么办?重启是个办法,但还是需要抢修时间,这期间内客户都无法访问损失的锅又得程序猿来背。   这种情况下备胎出现了, Keepalived登场,他可以解决服务宕机自动无缝切换。 K
欢醉
2018/01/22
1.1K0
备胎的养成记KeepAlived实现热备负载
FastDFS蛋疼的集群和负载均衡(六)之Nginx高可用集群
diary_report.jpg Interesting things 接着上一篇。 What did you do today Keepalived是一个高性能的服务器高可用解决方案,Keepalived主要防止服务器单点故障的发生问题,可以通过Nginx的配合实现web服务端的高可用。 还记得我们空出来的192.168.12.77和192.168.12.88吗?这2台设备就是用来配置nginx的集群和高可用。我们可以虚拟出来一个192.168.12.XX,外界请求访问虚拟ip而不是真正的N
用户2032165
2018/06/05
4590
nginx+keepalived 双机热备
当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,且切换的时间非常短。
随心助手
2019/10/15
1.6K0
nginx+keepalived 双机热备
Nginx+keepalived双机热备(主从模式)
负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行。 关于负载均衡介绍,可以参考:linux负载均衡总结性说明(四层负载/七层负载) 由于业务扩展,网站的访问量不断加大,负载越来越高。现需要在web前端放置nginx负载均衡,同时结合keepalived对前端nginx实现HA高可用。 1)nginx进程基于Master+Slave(worker)多进程模型,自身具有非常稳定的子进程管理功能。在Mast
洗尽了浮华
2018/01/23
3.7K0
Nginx+keepalived双机热备(主从模式)
Keepalived双机热备
第三步:在MySQL01数据库中创建一个ds_wp数据库,然后倒入 ds_wp.sql
刘銮奕
2020/04/27
2.3K0
使用Docker-compose搭建nginx-keepalived双机热备来实现高可用nginx集群
    面试官:你说你们公司使用nginx反向代理tornado,部署了多少多少台机器,好像很牛逼的样子,但是我问你,如果主机也就是部署了nginx那台机器并发过大导致宕机了怎么办?
用户9127725
2022/08/08
1.6K0
使用Docker-compose搭建nginx-keepalived双机热备来实现高可用nginx集群
Nginx+Keepalived实现简单的服务高可用
但是,作为互联网项目,纯2C的话必然需要做高可用,不仅后端的Server有N个,Nginx同样需要有N个,一主N备,当有一个服务器挂掉的时候,服务能瞬间切换到其他服务器,大概是这样的
小尘哥
2019/01/02
1.1K0
Nginx+Keepalived实现高可用Web负载均衡
通过之前的一篇文章Nginx+Tomcat实现负载均衡我们已经能通过Nginx来实现Tomcat应用的负载均衡,但是单个的Nginx会存在单点隐患,如果Nginx挂掉,那么全部的Tomcat应用都将变得不可用,所以实现Nginx的高可用是必不可少的一步。
会跳舞的机器人
2018/09/03
2.3K0
Nginx+Keepalived实现高可用Web负载均衡
Keepalived+Nginx+Apache主备及双活搭建测试
      keepalived+nginx高可用有主备和双活两种方式。主备方式下对外提供一个vip,同时只有一台服务器工作,另一台作备机;双活方式下对外提供两个vip,两台机器互为备份,下面详细说明搭建测试步骤。
loong576
2019/09/10
2.6K0
Keepalived+Nginx+Apache主备及双活搭建测试
Nginx + Keepalived使用文档
下载keepalived地址:http://www.keepalived.org/download.html
HUC思梦
2020/09/03
6790
Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)
基于 Nginx+Tomcat+Redis负载均衡Session共享来实现后续的功能 个人微信小程序。是关于人工智能的。应用是百度大脑 和 腾讯优图的人脸识别 有问题加QQ:783021975 验证问
小帅丶
2018/03/12
1.3K0
Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)
nginx和keepalived实现nginx高可用_weblogic负载均衡
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/72801492
全栈程序员站长
2022/11/03
3110
相关推荐
CentOS7 下 keepalived 的安装和配置
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验