基于CentOS7.5构建LVS-DR 群集,并启用Nginx负载均衡,一键完成。
在两台服务器上的步骤:
-
安装必要软件:在两台服务器上,安装必要的软件,包括
ipvsadm和keepalived。使用以下命令安装软件:
sudo yum install ipvsadm keepalived -y
-
禁用防火墙或配置规则:禁用防火墙或根据实际需要配置允许LVS流量通过的防火墙规则。
-
编辑
/etc/sysctl.conf文件:打开/etc/sysctl.conf文件并取消以下行的注释,使其生效:
net.ipv4.ip_forward = 1net.ipv4.ip_nonlocal_bind = 1net.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2
保存文件后执行以下命令使其生效:
sudo sysctl -p
-
编辑
/etc/keepalived/keepalived.conf文件:在两台服务器上,编辑/etc/keepalived/keepalived.conf文件,配置Keepalived的主备模式和虚拟IP。以下是一个示例配置文件:
global_defs {router_id LVS_DEMO}vrrp_script check_nginx {script "killall -0 nginx"interval 2weight -30}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.0.100}track_script {check_nginx}}
在上述示例配置文件中,state为MASTER表示当前服务器为主节点,state为BACKUP则表示备节点。interface需要根据实际网络接口名称进行配置。
-
启动和启用Keepalived服务:在两台服务器上,启动和启用Keepalived服务。使用以下命令分别在两台服务器上执行:
sudo systemctl start keepalivedsudo systemctl enable keepalived
仅在主节点上的步骤:
-
安装和配置Nginx:在主节点服务器上,安装和配置Nginx作为负载均衡器。使用以下命令安装Nginx:
sudo yum install nginx -y
然后,配置Nginx的负载均衡器。打开/etc/nginx/nginx.conf文件,按照以下示例配置添加一个HTTP部分:
http {upstream backend {server 192.168.0.101:80;server 192.168.0.102:80;}server {listen 80;location / {proxy_pass http://backend;}}}
以上示例配置假设服务器1的IP地址为192.168.0.101,服务器2的IP地址为192.168.0.102。根据实际情况调整配置。
-
启动和启用Nginx服务:在主节点服务器上,启动和启用Nginx服务。使用以下命令执行:
sudo systemctl start nginxsudo systemctl enable nginx
现在,您已经成功地在CentOS 7.5上构建了一个LVS-DR负载均衡集群,并使用Nginx作为负载均衡器。通过访问虚拟IP地址192.168.0.100,您应该能够通过负载均衡器访问到后端服务器。
请注意,上述步骤中的IP地址和配置仅供参考。您需要根据您的实际网络设置和需求进行适当的调整。
一键完成
下面是一个Shell脚本,可以自动化执行上述步骤来构建LVS-DR负载均衡集群并配置Nginx。
#!/bin/bashPRIMARY_SERVER="192.168.0.101"SECONDARY_SERVER="192.168.0.102"VIRTUAL_IP="192.168.0.100"# 安装必要软件sudo yum install ipvsadm keepalived nginx -y# 禁用防火墙或配置规则sudo systemctl stop firewalldsudo systemctl disable firewalld# 编辑 /etc/sysctl.conf 文件sudo sed -i '/net.ipv4.ip_forward/s/#//g' /etc/sysctl.confsudo sed -i '/net.ipv4.ip_nonlocal_bind/s/#//g' /etc/sysctl.confsudo sed -i '/net.ipv4.conf.all.arp_ignore/s/#//g' /etc/sysctl.confsudo sed -i '/net.ipv4.conf.all.arp_announce/s/#//g' /etc/sysctl.confsudo sysctl -p# 配置 keepalivedsudo cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.backupsudo cat <<EOF | sudo tee /etc/keepalived/keepalived.confglobal_defs {router_id LVS_DEMO}vrrp_script check_nginx {script "killall -0 nginx"interval 2weight -30}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {$VIRTUAL_IP}track_script {check_nginx}}EOF# 启动和启用 keepalived 服务sudo systemctl start keepalivedsudo systemctl enable keepalived# 配置 Nginxsudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backupsudo cat <<EOF | sudo tee /etc/nginx/nginx.confhttp {upstream backend {server $PRIMARY_SERVER:80;server $SECONDARY_SERVER:80;}server {listen 80;location / {proxy_pass http://backend;}}}EOF# 启动和启用 Nginx 服务sudo systemctl start nginxsudo systemctl enable nginx
请根据您的实际网络设置和需求,将变量 PRIMARY_SERVER、SECONDARY_SERVER 和 VIRTUAL_IP 的值替换为正确的IP地址。
将脚本保存为 lvs_dr_setup.sh,然后在命令行中运行以下命令来执行脚本:
bash lvs_dr_setup.sh
脚本将自动安装必要的软件,禁用防火墙,配置sysctl参数,设置Keepalived和Nginx的配置文件,并启动和启用相关的服务。
相关文章:
基于CentOS7.5构建LVS-DR 群集,并启用Nginx负载均衡,一键完成。
在两台服务器上的步骤: 安装必要软件:在两台服务器上,安装必要的软件,包括ipvsadm和keepalived。使用以下命令安装软件: sudo yum install ipvsadm keepalived -y 禁用防火墙或配置规则:禁用防火墙或根据实…...
redis 数据结构(二)
整数集合 整数集合是 Set 对象的底层实现之一。当一个 Set 对象只包含整数值元素,并且元素数量不时,就会使用整数集这个数据结构作为底层实现。 整数集合结构设计 整数集合本质上是一块连续内存空间,它的结构定义如下: typed…...
Hadoop依赖环境配置与安装部署
目录 什么是Hadoop?一、Hadoop依赖环境配置1.1 设置静态IP地址1.2 重启网络1.3 再克隆两台服务器1.4 修改主机名1.5 安装JDK1.6 配置环境变量1.7 关闭防火墙1.8 服务器之间互传资料1.9 做一个host印射1.10 免密传输 二、Hadoop安装部署2.1 解压hadoop的tar包2.2 切换…...
[C++网络协议] I/O复用
具有代表性的并发服务器端实现模型和方法: 多进程服务器:通过创建多个进程提供服务。 多路复用服务器:通过捆绑并统一管理I/O对象提供服务。✔ 多线程服务器:通过生成与客户端等量的线程提供服务。 目录 1. I/O复用 2. select函…...
3D数据导出工具HOOPS Publish:3D数据查看、生成标准PDF或HTML文档!
HOOPS中文网http://techsoft3d.evget.com/ 一、3D导出SDK HOOPS Publish是一款功能强大的SDK,可以创作丰富的工程数据并将模型文件导出为各种行业标准格式,包括PDF、STEP、JT和3MF。HOOPS Publish核心的3D数据模型是经过ISO认证的PRC格式(ISO 14739-1:…...
[羊城杯 2023] web
文章目录 D0nt pl4y g4m3!!! D0n’t pl4y g4m3!!! 打开题目,可以判断这里为php Development Server 启动的服务 查询得知,存在 PHP<7.4.21 Development Server源码泄露漏洞(参考文章) 抓包,构造payload 得到源码 class Pro{private $ex…...
Redisson—独立节点模式和集群管理工具
一、集群管理工具 Redisson集群管理工具提供了通过程序化的方式,像redis-trib.rb脚本一样方便地管理Redis集群的工具。 1、 创建集群 以下范例展示了如何创建三主三从的Redis集群。 ClusterNodes clusterNodes ClusterNodes.create() .master("127.0.0.1:…...
基于RabbitMQ的模拟消息队列之五——虚拟主机设计
文章目录 一、创建VirtualHost类二、初始化三、API1.创建交换机2.删除交换机3.创建队列4.删除队列5.创建绑定6.删除绑定7.发送消息转发规则 8.订阅消息1.消费者管理2.推送消息给消费者 3.添加一个消费者管理ConsumerManager9.确认消息 创建VirtualHost类。 1.串起内存和硬盘的数…...
Hadoop的概述与安装
Hadoop的概述与安装 一、Hadoop内部的三个核心组件1、HDFS:分布式文件存储系统2、YARN:分布式资源调度系统3、MapReduce:分布式离线计算框架4、Hadoop Common(了解即可) 二、Hadoop技术诞生的一个生态圈数据采集存储数…...
进程、线程与构造方法
进程、线程与构造方法 目录 一. 进程与线程1. 通俗解释2. 代码实现3. 线程生命周期(图解) 二. 构造方法 一. 进程与线程 1. 通俗解释 进程:就像电脑上运行的软件,例如QQ等。 线程:…...
04 Linux补充|C/C++
目录 Linux补充 C语⾔ C语言中puts和printf的区别? Linux补充 (1)ubuntu安装ssh服务端openssh-server命令: ubuntu安装后默认只有ssh客户端,只能去连其它ssh服务器;其它客户端想要连接这个ubuntu系统,需要安装部署…...
利用python制作AI图片优化工具
将模糊图片4K高清化效果如下: 优化前的图片 优化后如下图: 优化后图片变大变清晰了效果很明显 软件界面如下: 所用工具和代码: 1、所需软件包 网盘链接:https://pan.baidu.com/s/1CMvn4Y7edDTR4COfu4FviA提取码&…...
React v6(仅支持函数组件,不支持类组件)与v5版本路由使用详情和区别(详细版)
1.路由安装(默认安装最新版本6.15.0) npm i react-router-dom 2.路由模式 有常用两种路由模式可选:HashRouter 和 BrowserRouter。 ①HashRouter:URL中采用的是hash(#)部分去创建路由。 ②BrowserRouter:URL采用真实的URL资源,…...
(数字图像处理MATLAB+Python)第十二章图像编码-第一、二节:图像编码基本理论和无损编码
文章目录 一:图像编码基本理论(1)图像压缩的必要性(2)图像压缩的可能性A:编码冗余B:像素间冗余C:心理视觉冗余 (3)图像压缩方法分类A:基于编码前后…...
【Unity编辑器扩展】| 顶部菜单栏扩展 MenuItem
前言【Unity编辑器扩展】 | 顶部菜单栏扩展 MenuItem一、创建多级菜单二、创建可使用快捷键的菜单项三、调节菜单显示顺序和可选择性四、创建可被勾选的菜单项五、右键菜单扩展5.1 Hierarchy 右键菜单5.2 Project 右键菜单5.3 Inspector 组件右键菜单六、AddComponentMenu 特性…...
golang读取键盘功能按键输入
golang读取键盘功能按键输入 需求 最近业务上需要做一个终端工具,能够直接连到docker容器中进行交互。 技术选型 docker官方提供了python sdk、go sdk和remote api。 https://docs.docker.com/engine/api/sdk/ 因为我们需要提供命令行工具,因此采用g…...
用sklearn实现线性回归和岭回归
此文为ai创作,今天写文章的时候发现创作助手限时免费,想测试一下,于是就有了这篇文章,看的出来,效果还可以,一行没改。 线性回归 在sklearn中,可以使用线性回归模型做多变量回归。下面是一个示…...
结构型模式-桥接模式
用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。 这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类…...
缓存的放置时间和删除时间
缓存的放置时间和删除时间是指缓存中存储的数据的生命周期。这两个时间点非常重要,因为它们决定了缓存数据的有效期和何时应该从缓存中删除。 缓存的放置时间(Cache Put Time):这是指数据首次放入缓存的时间点。当数据被放入缓存时…...
内网穿透实战应用-如何通过内网穿透实现远程发送个人本地搭建的hMailServer的邮件服务
文章目录 1. 安装hMailServer2. 设置hMailServer3. 客户端安装添加账号4. 测试发送邮件5. 安装cpolar6. 创建公网地址7. 测试远程发送邮件8. 固定连接公网地址9. 测试固定远程地址发送邮件 hMailServer 是一个邮件服务器,通过它我们可以搭建自己的邮件服务,通过cpolar内网映射工…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案
在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。 一、系统核心功能架构&…...
[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG
TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码:HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...
macOS 终端智能代理检测
🧠 终端智能代理检测:自动判断是否需要设置代理访问 GitHub 在开发中,使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新,例如: fatal: unable to access https://github.com/ohmyzsh/oh…...
