keepalived+nginx 双机热备搭建
创始人
2024-05-29 12:07:29
0

keepalived+nginx 双机热备搭建

  • 一、准备工作
    • 1.1 准备两台centos7.9
    • 1.2 nginx 与 keepalived软件 双机安装
    • 1.3 ip分配
    • 1.4 修改主机名
    • 1.5 关闭selinux(双机执行)
    • 1.6 修改hosts(双机执行)
  • 二、安装keepalived
    • 2.1 执行一下命令安装keepalived(双机执行)
      • 2.1.1 yum安装
      • 2.1.2 编译安装
        • 2.1.2.1 安装依赖
        • 2.1.2.2 解压
    • 2.2 编辑keepalived配置文件
      • 2.2.1 清空原有的配置文件(双机执行)
      • 2.2.2 执行以下命令,编辑keepalived.conf文件。(双机分别执行)
      • 2.2.3 内容粘在配置文件中,设置不抢占(第一台主节点执行)
      • 2.2.4 内容粘在配置文件中(第二台从节点执行)
      • 2.2.5 编写check_nginx.sh脚本(双机执行)
    • 2.3 设置开机自启动
  • 三、安装nginx(双机安装)
  • 四、配置下systemctl管理自安装nginx
    • 4.1 创建nginx.service文件
    • 4.2 重载systemctl
    • 4.3 设置开机自启动
  • 五、开启keepalived,并测试下
    • 5.1 首先区分下 nginx 的index.html页面
    • 5.2 开启keepalived
    • 5.3 检验 keepalived的可用性

一、准备工作

1.1 准备两台centos7.9

1.2 nginx 与 keepalived软件 双机安装

1.3 ip分配

机器1机器2vip
192.168.19.200192.168.19.201192.168.19.203

1.4 修改主机名

# 第一台
hostnamectl set-hostname nginx01
# 第二台
hostnamectl set-hostname nginx02

1.5 关闭selinux(双机执行)

#关闭selinux
#永久关闭
sed -i 's/enforcing/disabled/' /etc/selinux/config
#临时关闭
setenforce 0
#查看
getenforce

1.6 修改hosts(双机执行)

cat >> /etc/hosts << EOF
192.168.19.130 nginx01
192.168.19.131 nginx02
EOF

二、安装keepalived

2.1 执行一下命令安装keepalived(双机执行)

2.1.1 yum安装

yum -y install keepalived

2.1.2 编译安装

获取安装包https://www.keepalived.org/download.html
找到自己需要的版本安装,本次安装2.1.5,双机下载,也可以wget
在这里插入图片描述

2.1.2.1 安装依赖

yum install curl gcc openssl-devel libnl3-devel net-snmp-devel libnfnetlink-devel -y

2.1.2.2 解压

# 解压源码包
tar fx keepalived-2.1.5.tar.gz
# 进入解压后的目录
cd keepalived-2.1.5
# 配置选项
./configure --prefix=/usr/local/keepalived --sysconf=/etc --with-run-dir=/usr/local/keepalived/run
# 编译安装
make && make install
# 检查安装情况 如果等于0则代表成功编译安装
echo $?
# 创建存放pid的目录
mkdir /usr/local/keepalived/run
# 拷贝启动文件到/usr/sbin/
cp -rf /usr/local/keepalived/sbin/keepalived /usr/sbin/keepalived

2.2 编辑keepalived配置文件

2.2.1 清空原有的配置文件(双机执行)

>/etc/keepalived/keepalived.conf

2.2.2 执行以下命令,编辑keepalived.conf文件。(双机分别执行)

vim /etc/keepalived/keepalived.conf

2.2.3 内容粘在配置文件中,设置不抢占(第一台主节点执行)

! Configuration File for keepalivedglobal_defs {# 唯一表示id 规格为keep_ip最优一段router_id keep_200
}
vrrp_script check_nginx {# 执行的检测脚本script "/etc/keepalived/check_nginx.sh"# 间隔检测的时间2sinterval 2# 检测失败降低权重,需要与主实例权重相减后小于备份实例weight -20
}
vrrp_instance VI_1 {# 指定 keepalived 的角色,必须大写 可选值:MASTER|BACKUPstate BACKUP# 设置不抢占nopreempt# 网卡设置 此处记得修改,ip a s显示需要绑定vip的网卡interface ens33# 虚拟路由标识,是一个数字,不用更改virtual_router_id 51# 定义优先级,数字越大,优先级越高priority 100# 设定 MASTER 与 BACKUP 负载均衡之间同步检查的时间间隔advert_int 1# 设置验证类型和密码,两个节点必须一致authentication {auth_type PASSauth_pass 1111}# 脚本监控状态track_script {check_nginx}virtual_ipaddress {192.168.19.133}
}

2.2.4 内容粘在配置文件中(第二台从节点执行)

! Configuration File for keepalivedglobal_defs {# 唯一表示id 规格为keep_ip最优一段router_id keep_201
}
vrrp_script check_nginx {# 执行的检测脚本script "/etc/keepalived/check_nginx.sh"# 间隔检测的时间2sinterval 2# 检测失败降低权重,需要与主实例权重相减后小于备份实例weight -20
}
vrrp_instance VI_1 {# 指定 keepalived 的角色,必须大写 可选值:MASTER|BACKUPstate BACKUP# 设置不抢占nopreempt# 网卡设置 此处记得修改,ip a s显示需要绑定vip的网卡interface ens33# 虚拟路由标识,是一个数字,不用更改virtual_router_id 51# 定义优先级,数字越大,优先级越高priority 99# 设定 MASTER 与 BACKUP 负载均衡之间同步检查的时间间隔advert_int 1# 设置验证类型和密码,两个节点必须一致authentication {auth_type PASSauth_pass 1111}# 脚本监控状态track_script {check_nginx}virtual_ipaddress {192.168.19.133}
}

2.2.5 编写check_nginx.sh脚本(双机执行)

vim /etc/keepalived/check_nginx.sh
#!/bin/bashA=`ps -C nginx --no-header |wc -l`if [ $A -eq 0 ];thensystemctl start nginxif [ `ps -C nginx --no-header |wc -l` -eq 0 ];thensystemctl stop keepalivedelseexit 0fielseexit 0fi

2.3 设置开机自启动

systemctl enable keepalived

三、安装nginx(双机安装)

# 下载依赖
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
# 创建相关目录src为下载nginx安装包目录,soft为nginx安装目录
mkdir -p /data/{src,soft}
# 进入下载目录
cd /data/src/
# 下载nginx安装包
yum -y install wget
wget http://nginx.org/download/nginx-1.21.0.tar.gz
# 解压
tar fx nginx-1.21.0.tar.gz
cd nginx-1.18.0/
# 配置nginx编译环境
./configure --prefix=/data/soft/nginx --with-http_stub_status_module
# 编译安装
make && make install
# 检查安装是否有问题
echo $?

四、配置下systemctl管理自安装nginx

4.1 创建nginx.service文件

vim /lib/systemd/system/nginx.service

将下面文字直接粘贴进去修改

[Unit]
Description=nginx
After=network.target[Service]
Type=forking
ExecStart=/data/soft/nginx/sbin/nginx -c /data/soft/nginx/conf/nginx.conf
ExecReload=/data/soft/nginx/sbin/nginx -s reload
ExecStop=/data/soft/nginx/sbin/nginx -s stop
PrivateTmp=true[Install]
WantedBy=multi-user.target

ExecStart:nginx的启动命令
ExecReload:nginx的重载命令
ExecStop:nginx的停止命令

4.2 重载systemctl

systemctl daemon-reload

4.3 设置开机自启动

systemctl enable nginx

五、开启keepalived,并测试下

5.1 首先区分下 nginx 的index.html页面

第一台

"hello world 1" > /data/soft/nginx/html/index.html

第二台

"hello world 2" > /data/soft/nginx/html/index.html

5.2 开启keepalived

# 开启keepalived
systemctl start keepalived
# 检查keepalived状态
systemctl status keepalived

在这里插入图片描述
在这里插入图片描述

5.3 检验 keepalived的可用性

首先查看vip在那台机器上,应该在第一台上,因为给的权重高

ip a s

在这里插入图片描述
浏览器访问下,访问vip
在这里插入图片描述
关闭第一台机器的nginx,这时候我们将check_nginx.sh的启动nginx命令先注释下,要不会自动启动

在这里插入图片描述
完成后停止第一台nginx

# 停止nginx
systemctl stop nginx
# 查看nginx状态
systemctl status nginx
# 查看keepalived 状态
systemctl status keepalived
# 查看vip在哪台机器上(两台执行)
ip a s

nginx 停止了
在这里插入图片描述
keepalived也停止了
在这里插入图片描述
查看vip 再第二台机器上,说明没问题
在这里插入图片描述
访问下浏览器http://192.168.19.203/
在这里插入图片描述
因为用的是不抢占模式,所以我们恢复下,看看vip会不会漂移回来(不漂移回来是对的)
首先修改刚刚修改的第一台check_nginx.sh脚本,将注释取消掉
在这里插入图片描述
直接启动第一台的keepalived,脚本会启动nginx的

# 启动第一台keepalived
systemctl start keepalived
# 查看状态
systemctl status keepalived
# 查看nginx启动状态
systemctl status nginx
# 都启动后查看vip再那台机器上(双机执行)
ip a s

还是再第二台上,说明没问题
在这里插入图片描述

相关内容

热门资讯

最近很火的辞职书 最近很火的辞职书(精选20篇)  在某个公司奋斗时间长了,总会有一些因素让我们选择辞职,那么不要忘了...
简单辞职信 简单辞职信范文(精选15篇)  工作中,有人入职,自然有人辞职,我们可能会因为某些原因离开职位,为此...
医院辞职报告 医院辞职报告医院辞职报告敬爱的院领导:由于我个人身体的原因,经过深思熟虑地考虑,决定辞去目前在我院的...
公司销售员辞职报告 公司销售员辞职报告  当我们在岗位上体验过一段时间后,我们可能会觉得自己并不适合现有工作岗位,为了避...
公司周年庆总经理致辞 公司周年庆总经理致辞范文  在生活、工作和学习中,大家都用到过致辞吧,在各种重大的庆典、外交、纪念活...
婚礼父亲致辞简短大气男方 婚礼父亲致辞简短大气男方(通用10篇)  在日常的学习、工作、生活中,许多人都有过写致辞的经历,对致...
文化旅游节开幕式致辞 文化旅游节开幕式致辞范文(精选7篇)  在学习、工作、生活中,要用到致辞的地方还是很多的,致辞具有针...
宾馆辞职报告 宾馆辞职报告  现今,辞职越来越常见了,即使工作很好,因为想看看外面的世界,我们可能会选择辞职,这种...
运动员致辞 运动员致辞范文三篇  导语:运动员一词,起源于古希腊文“裸体”的意思。从古希腊的雕刻上,我们还可以看...
企业发展规划书(2) 企业发展规划书范文  1. 内部收益率 40%, 投资回收期2年。  2.以××××学院出面融资(也...
房地产辞职报告 房地产辞职报告15篇  在我们平凡的日常里,报告对我们来说并不陌生,报告具有语言陈述性的特点。一听到...
职业生涯规划引言 前言:我们对自己进行了职业生涯规划设计,就是给自己的梦想插上翅膀。远大的理想总是建立在坚实的土地上的...
大学生职业生涯规划设计书   2017大学生职业生涯规划设计书一  今天,如果你不生活在未来,那么,明天你将生活在过去!  年...
大学职业规划书大一新生 大学职业规划书大一新生  大学大一新生职业规划书(精选15篇)  时间就如同白驹过隙般的流逝,我们又...
七年级地理教学计划 七年级地理教学计划  日子如同白驹过隙,不经意间,老师们的教学工作又将有新的目标,现在就让我们好好地...
会计职业规划的职业规划 会计职业规划的职业规划(通用9篇)  东流逝水,叶落纷纷,荏苒的时光就这样悄悄地,慢慢地消逝了,我们...
商务内贸的工作思路 商务内贸的工作思路  一、紧贴“三化”建设要求,创新内贸工作思路。  1、培育好新型建材行业的发展。...
学业水平提升计划 学业水平提升计划(精选13篇)  日子如同白驹过隙,又将迎来新的工作,新的挑战,现在就让我们好好地规...
学业职业规划范文   好好的规划自己的学习,好好的学习吧,我们看看下面的学业职业规划范文吧!  学业职业规划范文  生...
公司人力资源发展规划书 公司人力资源发展规划书为了促进本公司经营业务的发展,提高组织应变能力,保持公司的竞争能力,公司制定了...