nginx+keepalived负载均衡及高可用

devtools/2025/3/4 5:17:41/

一、环境准备

主机名ip地址备注
openEuler-1

192.168.121.11(本机)

192.168.131.11(心跳连接)

nginx负载均衡调度器
openEuler-2

192.168.121.12(本机)

192.168.131.12(心跳连接)

nginx-2主负载均衡调度器
openEuler-3192.168.121.13web1
openEuler-4192.168.121.14web2
Rocky-1192.168.121.51client

二、配置nginx反向代理

[root@openEuler-1 ~]# cd /etc/nginx/conf.d/
[root@openEuler-1 conf.d]# vim lb.conf
upstream webs {server 192.168.121.13:80;server 192.168.121.14:80;
}server {location / {proxy_pass http://webs;}
}
[root@openEuler-1 conf.d]# scp lb.conf 192.168.121.12:$PWD# 重启nginx服务

三、配置keepalived

[root@openEuler-1 conf.d]# cd /etc/keepalived/
[root@openEuler-1 keepalived]# vim keepalived.conf
! Configuration File for keepalivedglobal_defs {router_id LVS_1
}vrrp_script check_nginx {script "killall -0 nginx"
}vrrp_instance VI_1 {state MASTERinterface ens160lvs_sync_daemon_interface ens192virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {check_nginx}virtual_ipaddress {192.168.121.10}
}# 副负载均衡调度器上稍作修改
[root@openEuler-1 keepalived]# scp keepalived.conf 192.168.121.12:$PWD
修改为;
! Configuration File for keepalivedglobal_defs {router_id LVS_2
}vrrp_script check_nginx {script "killall -0 nginx"
}vrrp_instance VI_1 {state BACKUPinterface ens160lvs_sync_daemon_interface ens192virtual_router_id 51priority 80advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {check_nginx}virtual_ipaddress {192.168.121.10}
}# 两台调度器都重启keepalived服务

四、测试

# 关闭nginx主负载调度器
[root@openEuler-1 ~]# systemctl stop nginx.service# 副负载调度器接管服务
[root@openEuler-2 ~]# tail -f /var/log/messages
Mar  2 16:25:16 openEuler-2 Keepalived_vrrp[3078]: Sending gratuitous ARP on ens160 for 192.168.121.10
Mar  2 16:25:16 openEuler-2 Keepalived_vrrp[3078]: Sending gratuitous ARP on ens160 for 192.168.121.10
Mar  2 16:25:16 openEuler-2 kernel: [ 9964.205163] IPVS: stopping backup sync thread 3081 ...
Mar  2 16:25:16 openEuler-2 kernel: [ 9964.208213] IPVS: sync thread started: state = MASTER, mcast_ifn = ens192, syncid = 0, id = 0
Mar  2 16:25:21 openEuler-2 Keepalived_vrrp[3078]: (VI_1) Sending/queueing gratuitous ARPs on ens160 for 192.168.121.10
Mar  2 16:25:21 openEuler-2 Keepalived_vrrp[3078]: Sending gratuitous ARP on ens160 for 192.168.121.10
Mar  2 16:25:21 openEuler-2 Keepalived_vrrp[3078]: Sending gratuitous ARP on ens160 for 192.168.121.10
Mar  2 16:25:21 openEuler-2 Keepalived_vrrp[3078]: Sending gratuitous ARP on ens160 for 192.168.121.10
Mar  2 16:25:21 openEuler-2 Keepalived_vrrp[3078]: Sending gratuitous ARP on ens160 for 192.168.121.10
Mar  2 16:25:21 openEuler-2 Keepalived_vrrp[3078]: Sending gratuitous ARP on ens160 for 192.168.121.10

http://www.ppmy.cn/devtools/164376.html

相关文章

Redis缓存一致性难题:如何让数据库和缓存不“打架”?

标题:Redis缓存一致性难题:如何让数据库和缓存不“打架”?(附程序员脱发指南) 导言:当数据库和缓存成了“异地恋” 想象一下:你刚在美团下单了一份麻辣小龙虾,付款后刷新页面&#…

JSX 的基础概述、优势与工作原理(babel解析为JS)

概念: JSX 是 Js 与 XML(HTML) 的缩写,表示在Js 代码中编写HTML模板结构,它是react中编写UI模版的方式。 比如在 index.js 中的函数 App 中,写HTML代码,就是JSX的形式: 优势 兼顾…

Express + MongoDB 实现用户登录

使用 User.findOne({ username }) 根据用户名查找用户,如果用户不存在,返回 404 错误。调用 user.comparePassword(password) 方法比较用户输入的密码和数据库中存储的加密密码,如果密码不匹配,返回 401 错误。 // 处理用户登录的…

怎么进行mysql的优化?

MySQL 的优化是一个系统性的工作,涉及多个层面,包括查询优化、索引优化、配置优化、架构优化等。以下是一些常见的 MySQL 优化方法: 查询优化 避免全表扫描:确保查询能够使用索引,避免 SELECT *,只选择需要…

在Pycharm中将ui文件修改为py文件

在Pycharm中将ui文件修改为py文件 有些时候,我们需要把QTDesigner生成的.ui文件修改为.py文件 在一些教程中,通常使用cmd打开终端修改,或者是有一些人写了一些脚本来修改 这里我们可以使用pycharm来快速的修改 首先,我们在pyc…

留守儿童|基于SprinBoot+vue的留守儿童爱心网站(源码+数据库+文档)

留守儿童爱心网站 目录 基于SprinBootvue的留守儿童爱心网站 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 3用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍&…

开源项目Wren AI 文本到SQL解决方案详解

开源项目Wren AI: 文本到SQL解决方案详解 项目地址:https://gitcode.com/gh_mirrors/wr/WrenAI 一、项目介绍 Wren AI 是一个开放源码的文本到SQL解决方案,旨在帮助数据团队通过自然语言查询而无需编写复杂SQL语句就能获取结果和洞察.作为一个RAG(可检索生成)架构上的组件,W…

wav格式的音频压缩,WAV 转 MP3 VBR 体积缩减比为 13.5%、多个 MP3 格式音频合并为一个、文件夹存在则删除重建,不存在则直接建立

🥇 版权: 本文由【墨理学AI】原创首发、各位读者大大、敬请查阅、感谢三连 🎉 声明: 作为全网 AI 领域 干货最多的博主之一,❤️ 不负光阴不负卿 ❤️ 文章目录 问题一:wav格式的音频压缩为哪些格式,网络传输给用户播放…