当前位置: 首页 > news >正文

基于CentOS7.5构建LVS-DR 群集,并启用Nginx负载均衡,一键完成。

在两台服务器上的步骤:

  1. 安装必要软件:在两台服务器上,安装必要的软件,包括ipvsadmkeepalived。使用以下命令安装软件:

 sudo yum install ipvsadm keepalived -y
  1. 禁用防火墙或配置规则:禁用防火墙或根据实际需要配置允许LVS流量通过的防火墙规则。

  2. 编辑/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
  1. 编辑/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}}

在上述示例配置文件中,stateMASTER表示当前服务器为主节点,stateBACKUP则表示备节点。interface需要根据实际网络接口名称进行配置。

  1. 启动和启用Keepalived服务:在两台服务器上,启动和启用Keepalived服务。使用以下命令分别在两台服务器上执行:

 sudo systemctl start keepalivedsudo systemctl enable keepalived

仅在主节点上的步骤:

  1. 安装和配置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。根据实际情况调整配置。

  1. 启动和启用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/bash​PRIMARY_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_SERVERSECONDARY_SERVERVIRTUAL_IP 的值替换为正确的IP地址。

将脚本保存为 lvs_dr_setup.sh,然后在命令行中运行以下命令来执行脚本:

 bash lvs_dr_setup.sh

脚本将自动安装必要的软件,禁用防火墙,配置sysctl参数,设置Keepalived和Nginx的配置文件,并启动和启用相关的服务。

相关文章:

基于CentOS7.5构建LVS-DR 群集,并启用Nginx负载均衡,一键完成。

在两台服务器上的步骤&#xff1a; 安装必要软件&#xff1a;在两台服务器上&#xff0c;安装必要的软件&#xff0c;包括ipvsadm和keepalived。使用以下命令安装软件&#xff1a; sudo yum install ipvsadm keepalived -y 禁用防火墙或配置规则&#xff1a;禁用防火墙或根据实…...

redis 数据结构(二)

整数集合 整数集合是 Set 对象的底层实现之一。当一个 Set 对象只包含整数值元素&#xff0c;并且元素数量不时&#xff0c;就会使用整数集这个数据结构作为底层实现。 整数集合结构设计 整数集合本质上是一块连续内存空间&#xff0c;它的结构定义如下&#xff1a; typed…...

Hadoop依赖环境配置与安装部署

目录 什么是Hadoop&#xff1f;一、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复用

具有代表性的并发服务器端实现模型和方法&#xff1a; 多进程服务器&#xff1a;通过创建多个进程提供服务。 多路复用服务器&#xff1a;通过捆绑并统一管理I/O对象提供服务。✔ 多线程服务器&#xff1a;通过生成与客户端等量的线程提供服务。 目录 1. I/O复用 2. select函…...

3D数据导出工具HOOPS Publish:3D数据查看、生成标准PDF或HTML文档!

HOOPS中文网http://techsoft3d.evget.com/ 一、3D导出SDK HOOPS Publish是一款功能强大的SDK&#xff0c;可以创作丰富的工程数据并将模型文件导出为各种行业标准格式&#xff0c;包括PDF、STEP、JT和3MF。HOOPS Publish核心的3D数据模型是经过ISO认证的PRC格式(ISO 14739-1:…...

[羊城杯 2023] web

文章目录 D0nt pl4y g4m3!!! D0n’t pl4y g4m3!!! 打开题目&#xff0c;可以判断这里为php Development Server 启动的服务 查询得知&#xff0c;存在 PHP<7.4.21 Development Server源码泄露漏洞(参考文章) 抓包&#xff0c;构造payload 得到源码 class Pro{private $ex…...

Redisson—独立节点模式和集群管理工具

一、集群管理工具 Redisson集群管理工具提供了通过程序化的方式&#xff0c;像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&#xff1a;分布式文件存储系统2、YARN&#xff1a;分布式资源调度系统3、MapReduce&#xff1a;分布式离线计算框架4、Hadoop Common&#xff08;了解即可&#xff09; 二、Hadoop技术诞生的一个生态圈数据采集存储数…...

进程、线程与构造方法

进程、线程与构造方法 目录 一&#xff0e; 进程与线程1. 通俗解释2. 代码实现3. 线程生命周期&#xff08;图解&#xff09; 二&#xff0e; 构造方法 一&#xff0e; 进程与线程 1. 通俗解释 进程&#xff1a;就像电脑上运行的软件&#xff0c;例如QQ等。 线程&#xff1a;…...

04 Linux补充|C/C++

目录 Linux补充 C语⾔ C语言中puts和printf的区别&#xff1f; Linux补充 (1)ubuntu安装ssh服务端openssh-server命令&#xff1a; ubuntu安装后默认只有ssh客户端&#xff0c;只能去连其它ssh服务器&#xff1b;其它客户端想要连接这个ubuntu系统&#xff0c;需要安装部署…...

利用python制作AI图片优化工具

将模糊图片4K高清化效果如下&#xff1a; 优化前的图片 优化后如下图&#xff1a; 优化后图片变大变清晰了效果很明显 软件界面如下&#xff1a; 所用工具和代码&#xff1a; 1、所需软件包 网盘链接&#xff1a;https://pan.baidu.com/s/1CMvn4Y7edDTR4COfu4FviA提取码&…...

React v6(仅支持函数组件,不支持类组件)与v5版本路由使用详情和区别(详细版)

1.路由安装(默认安装最新版本6.15.0) npm i react-router-dom 2.路由模式 有常用两种路由模式可选&#xff1a;HashRouter 和 BrowserRouter。 ①HashRouter&#xff1a;URL中采用的是hash(#)部分去创建路由。 ②BrowserRouter&#xff1a;URL采用真实的URL资源&#xff0c;…...

(数字图像处理MATLAB+Python)第十二章图像编码-第一、二节:图像编码基本理论和无损编码

文章目录 一&#xff1a;图像编码基本理论&#xff08;1&#xff09;图像压缩的必要性&#xff08;2&#xff09;图像压缩的可能性A&#xff1a;编码冗余B&#xff1a;像素间冗余C&#xff1a;心理视觉冗余 &#xff08;3&#xff09;图像压缩方法分类A&#xff1a;基于编码前后…...

【Unity编辑器扩展】| 顶部菜单栏扩展 MenuItem

前言【Unity编辑器扩展】 | 顶部菜单栏扩展 MenuItem一、创建多级菜单二、创建可使用快捷键的菜单项三、调节菜单显示顺序和可选择性四、创建可被勾选的菜单项五、右键菜单扩展5.1 Hierarchy 右键菜单5.2 Project 右键菜单5.3 Inspector 组件右键菜单六、AddComponentMenu 特性…...

golang读取键盘功能按键输入

golang读取键盘功能按键输入 需求 最近业务上需要做一个终端工具&#xff0c;能够直接连到docker容器中进行交互。 技术选型 docker官方提供了python sdk、go sdk和remote api。 https://docs.docker.com/engine/api/sdk/ 因为我们需要提供命令行工具&#xff0c;因此采用g…...

用sklearn实现线性回归和岭回归

此文为ai创作&#xff0c;今天写文章的时候发现创作助手限时免费&#xff0c;想测试一下&#xff0c;于是就有了这篇文章&#xff0c;看的出来&#xff0c;效果还可以&#xff0c;一行没改。 线性回归 在sklearn中&#xff0c;可以使用线性回归模型做多变量回归。下面是一个示…...

结构型模式-桥接模式

用于把抽象化与实现化解耦&#xff0c;使得二者可以独立变化。这种类型的设计模式属于结构型模式&#xff0c;它通过提供抽象化和实现化之间的桥接结构&#xff0c;来实现二者的解耦。 这种模式涉及到一个作为桥接的接口&#xff0c;使得实体类的功能独立于接口实现类&#xf…...

缓存的放置时间和删除时间

缓存的放置时间和删除时间是指缓存中存储的数据的生命周期。这两个时间点非常重要&#xff0c;因为它们决定了缓存数据的有效期和何时应该从缓存中删除。 缓存的放置时间&#xff08;Cache Put Time&#xff09;&#xff1a;这是指数据首次放入缓存的时间点。当数据被放入缓存时…...

内网穿透实战应用-如何通过内网穿透实现远程发送个人本地搭建的hMailServer的邮件服务

文章目录 1. 安装hMailServer2. 设置hMailServer3. 客户端安装添加账号4. 测试发送邮件5. 安装cpolar6. 创建公网地址7. 测试远程发送邮件8. 固定连接公网地址9. 测试固定远程地址发送邮件 hMailServer 是一个邮件服务器,通过它我们可以搭建自己的邮件服务,通过cpolar内网映射工…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...