Keepalived实现Nginx的高可用集群案例

服务器规划:
    
                    serverb(nginx2):192.168.233.144
                    serverc(客户端):192.168.233.140
                    serverd(nginx1):192.168.233.141

结构图:

serverd(nginx1):

# 安装nginx
yum install nginx -y# 进入nginx配置目录
cd /etc/nginx/conf.d/# 编辑www.conf文件
vim www.conf
server {listen 80; server_name localhost;location / { root /data/web;index index.html;}   
}
# 创建web目录
mkdir -p /data/web# 创建测试页面index.html
echo "web test page, ip is `hostname -I`." >/data/web/index.html# 启动nginx服务
systemctl start nginx# 安装keepalived
yum install keepalived -y# 进入keepalived配置目录
cd /etc/keepalived/# 备份keepalived.conf文件
cp keepalived.conf{,.bak}# 编辑keepalived.conf文件
vim keepalived.conf
! Configuration File for keepalivedglobal_defs {router_id LVS_141  # 设置路由器的ID为LVS_141
}vrrp_instance nginx {state MASTER  # 将该实例设置为MASTER状态,备份节点应设置为BACKUPinterface ens160  # 指定VRRP实例使用的网络接口virtual_router_id 51  # 虚拟路由器的唯一ID,同一组中MASTER和BACKUP的virtual_router_id必须相同priority 100  # 优先级设置为100,MASTER的优先级通常比BACKUP的优先级高advert_int 1  # 发送VRRP通告的时间间隔,单位为秒authentication {auth_type PASS  # 使用简单密码认证方式auth_pass 1111  # 认证密码为1111}virtual_ipaddress {192.168.233.50  # 配置虚拟IP地址,客户端将访问该IP以访问服务}
}# 启动keepalived服务
systemctl start keepalived

serverb(nginx2):

# 安装 nginx
yum install nginx -y# 进入 nginx 配置目录
cd /etc/nginx/conf.d/# 编辑 nginx 配置文件 www.conf
vim www.conf# 在配置文件中写入以下内容
server {listen 80; server_name localhost;location / { root /data/web;index index.html;}   
}# 创建 web 根目录
mkdir -p /data/web# 在 web 根目录下创建测试页面 index.html
echo "web test page, ip is `hostname -I`." >/data/web/index.html# 启动 nginx
systemctl start nginx# 安装 keepalived
yum install keepalived -y# 进入 keepalived 配置目录
cd /etc/keepalived/# 备份 keepalived 配置文件
cp keepalived.conf{,.bak}# 编辑 keepalived 配置文件
vim keepalived.conf# 在 keepalived 配置文件中写入以下内容
! Configuration File for keepalivedglobal_defs {router_id LVS_144  # 设置路由器标识为LVS_144
}vrrp_instance nginx {  # 创建一个名为nginx的VRRP实例state BACKUP  # 将此节点设置为备用状态,主节点应该设置为MASTERinterface ens160  # 指定VRRP实例要使用的网络接口virtual_router_id 51  # VRRP实例的虚拟路由器ID,与同一VLAN内其他节点的ID相同priority 80  # 优先级,数字越大表示优先级越高,主节点通常设置为100advert_int 1  # 发送VRRP通告的间隔时间,单位为秒authentication {  # 配置认证信息auth_type PASS  # 使用密码认证方式auth_pass 1111  # 认证密码}virtual_ipaddress {  # 设置虚拟IP地址列表192.168.233.50  # 在VRRP实例中使用的虚拟IP地址}
}# 启动 keepalived
systemctl start keepalived

serverc(客户端):

vip访问:
curl 192.168.233.50

日志查看:

tail -f /var/log/messages

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2804319.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【Pytorch深度学习开发实践学习】B站刘二大人课程笔记整理lecture07多维输入

lecture07多维输入 课程网址 Pytorch深度学习实践 部分课件内容: import torch import numpy as npxy np.loadtxt(diabetes.csv.gz, delimiter,, dtypenp.float32) x_data torch.from_numpy(xy[:,:-1]) #第一列开始最后一列不要 y_data torch.from_numpy(…

[已解决]npm淘宝镜像最新官方指引(2023.08.31)

最新的配置淘宝镜像的淘宝官方提供的方法 npm config set registry https://registry.npmmirror.com原来的 registry.npm.taobao.org 已替换为 registry.npmmirror.com ,当点击 registry.npm.taobao.org 会默认跳转到 registry.npmmirror.com 如果你想将npm的下载…

python 打包 apk

转换之前python代码需要使用指定的框架才能转换,列如:kivy from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.uix.button import Buttonimport time import pyautogui import threadingstatus False# 这是一个将被线程执…

2022蓝帽杯取证初赛

检材:https://pan.baidu.com/s/1ibOdxyCWeC5x0DQKjwcz7w?pwdvg6g 目录 手机取证1、627604C2-C586-48C1-AA16-FF33C3022159.PNG图片的分辨率是?(答案参考格式:19201080)2、姜总的快递单号是多少?&#xff0…

项目开发Eclipse中Jar包的管理和使用

一、如何生成Jar包? Jar生成主要是给别人用的,可以通过Eclipse的Export功能,导出jar包文件。 1. 在Eclipse中,右键单击项目,并选择“Export”。 2. 在弹出的“Export”窗口中,选择“Java” -> “JAR f…

C# Onnx 使用onnxruntime部署实时视频帧插值

目录 介绍 效果 模型信息 项目 代码 下载 C# Onnx 使用onnxruntime部署实时视频帧插值 介绍 github地址:https://github.com/google-research/frame-interpolation FILM: Frame Interpolation for Large Motion, In ECCV 2022. The official Tensorflow 2…

《springcloud alibaba》 二 nacos配置中心

目录 父项目配置pom.xmlconfig-nacos项目pom.xml配置文件application.ymlbootstrap.yml 启动类配置 多环境配置groupRefreshScope 市面上配置中心大致分为三种 springcloud configapollonacos 推荐使用 父项目配置 pom.xml <?xml version"1.0" encoding"…

2024年阿里云服务器优惠价格表,值得买云主机清单

2024阿里云服务器优惠活动政策整理&#xff0c;轻量2核2G3M服务器61元一年、2核4G4M带宽165元1年&#xff0c;云服务器4核16G10M带宽26元1个月、149元半年&#xff0c;阿里云ECS云服务器2核2G3M新老用户均可99元一年续费不涨价&#xff0c;企业用户2核4G5M带宽199元一年&#x…

Netty是如何解决JDK中的Selector的bug的?

Selector BUG: JDK NIO的BUG, 例如臭名昭著的epoll bug&#xff0c;它会导致Selector空轮询&#xff0c;最终导致CPU 100%, 官方声称在JDK 1.6版本的update18修复了该问题&#xff0c;但是直到JDK1.7版本该问题仍旧存在&#xff0c;只不过该BUG发生 概率降低了一些而已&#x…

渗透测试—信息收集

渗透测试—信息收集 1. 收集域名信息1.1. 域名注册信息1.2. SEO信息收集1.3. 子域名收集1.3.1. 在线子域名收集1.3.2. 子域名收集工具 1.4. 域名备案信息1.5. ICP备案号查询1.6. SSL证书查询 2. 收集真实IP2.1. 超级ping2.2. Ping2.3. CDN绕过 3. 收集旁站或C段IP3.1. 旁站或C段…

桥梁防船撞监测预警系统解决方案

一、方案概述 随着航道交通的快速发展&#xff0c;通航船舶日益增多&#xff0c;船舶超高以及偏航带来诸多安全隐患&#xff0c;时常发生桥梁受到船舶碰撞的事故&#xff0c;轻则桥梁结构和船舶受到损伤&#xff0c;重则桥梁垮塌&#xff0c;不但经济损失巨大&#xff0c;更会造…

Python | 获取命令行参数

一、sys模块 sys模块可以获取命令行参数。通过sys.argv可以访问所有命令行参数&#xff0c;返回值是包含所有命令行参数的列表。列表各元素意义如下&#xff1a; 参数1(脚本名)&#xff1a; sys.argv[0] 参数2&#xff1a; sys.argv[1] 参数3&#xff1a; sys.argv[2] ... 参数…

第五章 流程控制之循环

目录 1.1. for循环 1.1.1. 带列表的for循环 1.1.2. 不带列表的for循环 1.1.3. 基于C语言风格的for循环 1.2. while循环 1.2.1. 格式 1.2.2. while循环读取文件 1.3. until循环 1.3.1. 作用 1.4. 循环控制 1.4.1. 组成 1.4.2. 详细语法&#xff1a; 1.4.3. 示例 1…

JAVA工程师面试专题-并发编程篇

目录 一、线程 1、并发与并行的区别 2、同步和异步的区别 3、Java中创建线程有哪些方式? 4、Thread和Runnable的区别 5、Java中的Runnable、Callable、Future、FutureTask的区别和联系&#xff1f; 6、说一下你对 CompletableFuture 的理解 7、volatile关键字有什么用&…

Kubernetes 声明式API

对于声明式API来说&#xff0c;只需向系统提交一个定义好的API对象来声明资源对象的"期望状态"。然后由系统去确保资源对象从"当前状态"迁移到"期望状态"。这里的API对象是一种"意向表达&#xff08;Record of Intent&#xff09;“。创建A…

Jenkins持续集成Python项目

一、前言   之前学习了很多自动化测试框架&#xff0c;但是写的脚本都是本地执行&#xff0c;多数用来造数据。最近公司掀起一股自动化测试的风&#xff0c;所以就想研究下如何集成jenkins&#xff0c;本次采用pytest&#xff0c;用的是阿里云服务器centos7。 二、服务器环境…

1.网络游戏逆向分析与漏洞攻防-游戏启动流程漏洞-测试需求与需求拆解

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;分析接收到的对话数据包 这是一个新的篇章&#xff0c;之前是关于把我们的东西放进游戏里和内存里的数据分析与利用&#xff0c;现在是专注于网络部分&#xff0c;通过分析网络数据包得到应用程序中各…

J7 - 对于ResNeXt-50算法的思考

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 J6周有一段代码如下 思考过程 首先看到这个问题的描述&#xff0c;想到的是可能使用了向量操作的广播机制然后就想想办法验证一下&…

华清远见作业第四十二天——Qt(第四天)

思维导图&#xff1a; 编程&#xff1a; 代码&#xff1a; widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTextToSpeech> //语音播报类 QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public Q…

【C++精简版回顾】5.字符串

1.字符串的四种初始化方式 string str "ilove"; string str1("ilove"); string str2(str1); string str3 str1; 2.针对字符串的一些函数 &#xff08;1&#xff09;字符串长度 cout<<str.length()<<endl;&#xff08;2&#xff09;查找字…