西充县建设路小学网站,深圳市建设主管部门门户网站,网站vr的建设,一起看在线观看免费keepalivednginx 双机热备搭建一、准备工作1.1 准备两台centos7.91.2 nginx 与 keepalived软件 双机安装1.3 ip分配1.4 修改主机名1.5 关闭selinux#xff08;双机执行#xff09;1.6 修改hosts#xff08;双机执行#xff09;二、安装keepalived2.1 执行一下命令安装keepa…
keepalivednginx 双机热备搭建一、准备工作1.1 准备两台centos7.91.2 nginx 与 keepalived软件 双机安装1.3 ip分配1.4 修改主机名1.5 关闭selinux双机执行1.6 修改hosts双机执行二、安装keepalived2.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管理自安装nginx4.1 创建nginx.service文件4.2 重载systemctl4.3 设置开机自启动五、开启keepalived并测试下5.1 首先区分下 nginx 的index.html页面5.2 开启keepalived5.3 检验 keepalived的可用性一、准备工作
1.1 准备两台centos7.9
1.2 nginx 与 keepalived软件 双机安装
1.3 ip分配
机器1机器2vip192.168.19.200192.168.19.201192.168.19.203
1.4 修改主机名
# 第一台
hostnamectl set-hostname nginx01
# 第二台
hostnamectl set-hostname nginx021.5 关闭selinux双机执行
#关闭selinux
#永久关闭
sed -i s/enforcing/disabled/ /etc/selinux/config
#临时关闭
setenforce 0
#查看
getenforce1.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 keepalived2.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 -y2.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/keepalived2.2 编辑keepalived配置文件
2.2.1 清空原有的配置文件双机执行
/etc/keepalived/keepalived.conf2.2.2 执行以下命令编辑keepalived.conf文件。双机分别执行
vim /etc/keepalived/keepalived.conf2.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/bashAps -C nginx --no-header |wc -lif [ $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]
Descriptionnginx
Afternetwork.target[Service]
Typeforking
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
PrivateTmptrue[Install]
WantedBymulti-user.target
ExecStartnginx的启动命令 ExecReloadnginx的重载命令 ExecStopnginx的停止命令
4.2 重载systemctl
systemctl daemon-reload4.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.html5.2 开启keepalived
# 开启keepalived
systemctl start keepalived
# 检查keepalived状态
systemctl status keepalived5.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 snginx 停止了 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还是再第二台上说明没问题