博客
关于我
Nginx keepalived一主一从高可用,手把手带你一步一步配置!
阅读量:789 次
发布时间:2023-02-15

本文共 3327 字,大约阅读时间需要 11 分钟。

Nginx 和 Keepalived 高可用性部署指南

一、实验环境

在本次实验中,我们准备了三台服务器:

  • Nginx-40.14:IPADDR=192.168.40.14
  • Nginx-40.15:IPADDR=192.168.40.15
  • Tomcat-40.16:IPADDR=192.168.40.16,运行两个Tomcat容器分别在8081和8082端口

二、配置环境

Nginx-40.14 配置

  • IPADDR:192.168.40.14
  • Keepalived.conf
    vrrp_instance VI_1 {    state MASTER    interface ens33    virtual_router_id 17    priority 150    virtual_ipaddress 192.168.40.17}

Nginx-40.15 配置

  • IPADDR:192.168.40.15
  • Keepalived.conf
    vrrp_instance VI_1 {    state BACKUP    interface ens33    virtual_router_id 17    priority 99    virtual_ipaddress 192.168.40.17}

Tomcat-40.16 配置

  • 使用Docker部署两个Tomcat容器:
    Tomcat8081: 192.168.40.16:8081Tomcat8082: 192.168.40.16:8082

三、Keepalived 安装部署

1. 安装依赖环境

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

2. 创建存放目录

mkdir /software

3.上传安装包到 /software

(此步骤省略具体上传命令)

4. 解压安装包

tar -zxvf keepalived-2.1.5.tar.gz

5. 进入keepalived-2.1.5目录并配置

cd keepalived-2.1.5./configure --prefix=/data/keepalived --sysconf=/etc

6. 编译安装

make && make install

7. 创建软连接

ln -s sbin/keepalived /sbin/ln -snf sbin/keepalived /sbin

8. 复制并添加服务

cp /software/keepalived-2.1.5/keepalived/etc/init.d/keepalived /etc/init.d/chkconfig --add keepalived

9. 启动服务

chkconfig keepalived onservice keepalived start

四、Keepalived 配置修改

Master 配置

vim /etc/keepalived/
global_defs {    router_id NGINX}vrrp_instance VI_1 {    state MASTER    interface ens33    virtual_router_id 17    priority 150    advert_int 1    authentication {        auth_type PASS        auth_pass 1111    }    virtual_ipaddress {        192.168.40.17    }}

Backup 配置

vim /etc/keepalived/
global_defs {    router_id NGINX}vrrp_instance VI_1 {    state BACKUP    interface ens33    virtual_router_id 17    priority 99    advert_int 1    authentication {        auth_type PASS        auth_pass 1111    }    virtual_ipaddress {        192.168.40.17    }}

五、启动 Nginx 并验证

/usr/local/nginx/sbin/nginx
service keepalived start

验证虚拟 IP 是否正常:

ip a

六、验证故障转移

停止 Nginx 服务

/usr/local/nginx/sbin/nginx -s stop

验证网络状态:

netstat -nnetstat -nult

验证网页状态:

curl http://192.168.40.17

手动停止 Keepalived 服务

service keepalived stop

验证网页是否恢复正常:

curl http://192.168.40.17

七、脚本自动切换实现

检测 Nginx 运行状态的脚本

#!/bin/bashA=$(ps -C nginx --no-header | wc -l)if [ $A -eq 0 ]; then    sleep 2    if [ `ps -C nginx --no-header | wc -l` -eq 0 ]; then        killall keepalived    fifi

修改 Keepalived.conf 配置

Master 配置

vim /etc/keepalived/
global_defs {    router_id NGINX}vrrp_script chk_nginx {    script "/root/chk_nginx.sh"    interval 2    weight -5}vrrp_instance VI_1 {    state MASTER    interface ens33    virtual_router_id 17    priority 100    advert_int 1    authentication {        auth_type PASS        auth_pass 1111    }    virtual_ipaddress {        192.168.40.17/24    }    track script {        chk_nginx    }}

Backup 配置

vim /etc/keepalived/
global_defs {    router_id NGINX}vrrp_instance VI_1 {    state BACKUP    interface ens33    virtual_router_id 17    priority 99    advert_int 1    authentication {        auth_type PASS        auth_pass 1111    }    virtual_ipaddress {        192.168.40.17/24    }}

八、测试 Keepalived 自动切换

停止 Nginx 服务

/usr/local/nginx/sbin/nginx -s stop

验证网络接口信息:

ip a

验证网页状态:

curl http://192.168.40.17

恢复 Nginx 服务

usr/local/nginx/sbin/nginx

验证 Keepalived 是否自动切换:

service keepalived status

通过以上步骤,可以实现 Nginx 和 Keepalived 的高可用性部署,确保服务的稳定性和可靠性。

转载地址:http://vocfk.baihongyu.com/

你可能感兴趣的文章
netty——bytebuf的创建、内存分配与池化、组成、扩容规则、写入读取、内存回收、零拷贝
查看>>
netty——Channl的常用方法、ChannelFuture、CloseFuture
查看>>
netty——Future和Promise的使用 线程间的通信
查看>>
netty——Handler和pipeline
查看>>
Vue输出HTML
查看>>
netty——黏包半包的解决方案、滑动窗口的概念
查看>>
Netty中Http客户端、服务端的编解码器
查看>>
Netty中使用WebSocket实现服务端与客户端的长连接通信发送消息
查看>>
Netty中实现多客户端连接与通信-以实现聊天室群聊功能为例(附代码下载)
查看>>
Netty中的组件是怎么交互的?
查看>>
Netty中集成Protobuf实现Java对象数据传递
查看>>
netty之 定长数据流处理数据粘包问题
查看>>
Netty事件注册机制深入解析
查看>>
netty代理
查看>>
Netty入门使用
查看>>
netty入门,入门代码执行流程,netty主要组件的理解
查看>>
Netty原理分析及实战(一)-同步阻塞模型(BIO)
查看>>
Netty原理分析及实战(三)-高可用服务端搭建
查看>>
Netty原理分析及实战(二)-同步非阻塞模型(NIO)
查看>>
Netty原理分析及实战(四)-客户端与服务端双向通信
查看>>