腾讯云演示nginx(若依项目)

2023-11-07

负载均衡

负载均衡介绍

Load balancing,即负载均衡,是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。

负载均衡分为硬件负载均衡和软件负载均衡。

硬件负载均衡解决方案是直接在服务器和外部网络间安装负载均衡设备,这种设备我们通常称之为负载均衡器,负载均衡器产品有F5、NetScaler等。

软件负载均衡解决方案是指在一台或多台服务器相应的操作系统上安装一个或多个附加软件来实现负载均衡,它的优点是基于特定环境,配置简单,使用灵活,成本低廉,可以满足一般的负载均衡需求。目前比较流行的就三类软件负载均衡,LVS、Nginx和HAProxy。用的最多的还是LVS和Nginx这两种。

本次就以Nginx为例来演示。

准备工作

1.安装nginx

#首先安装nginx前置软件yum -y install gcc pcre-devel zlib-devel openssl openssl-devel#下载nginx软件安装包cd /data/tmpwget http://nginx.org/download/nginx-1.18.0.tar.gztar -zxvf nginx-1.18.0.tar.gzcd nginx-1.18.0#设置安装目录为/usr/local/nginx./configure --prefix=/usr/local/nginxmakemake install#启动
/usr/local/nginx/sbin/nginx#查看是否启动成功
#停止
/usr/local/nginx/sbin/nginx -s stop
#重启
/usr/local/nginx/sbin/nginx -s reload
#查看进程是否启动成功
ps -ef | grep nginx

2.通过修改端口号的方式,启动多个程序副本。启动程序时加上server.port参数来指定不同的端口。

cd /data/app/ruoyi-adminmkdir 18081 18082 18083cp /data/app/ruoyi-admin/ruoyi-admin.jar /data/app/ruoyi-admin/18081/ruoyi-admin.jarcp /data/app/ruoyi-admin/ruoyi-admin.jar /data/app/ruoyi-admin/18082/ruoyi-admin.jarcp /data/app/ruoyi-admin/ruoyi-admin.jar /data/app/ruoyi-admin/18083/ruoyi-admin.jarcd /data/app/ruoyi-admin/18081/nohup java -jar ruoyi-admin.jar --server.port=18081 &cd /data/app/ruoyi-admin/18082/nohup java -jar ruoyi-admin.jar --server.port=18082 &cd /data/app/ruoyi-admin/18083/nohup java -jar ruoyi-admin.jar --server.port=18083 &

3.修改nginx配置文件,进行负载均衡配置。

vim /usr/local/nginx/conf/nginx.conf

设置负载均衡方式,默认是轮询方式。本示例选择了iphash,每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务。这样可一定程度避免多后端服务下Session同步的问题,但是还是建议使用Spring Session来解决Session共享问题。

upstream ruoyi-server {
ip_hash; 
    server   localhost:18081;
    server   localhost:18082;
server   localhost:18083;
}

配置代理。

location / {
  proxy_pass   http://ruoyi-server;
  proxy_set_header Host $http_host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
}

重启nginx。

/usr/local/nginx/sbin/nginx -s reload

演示一下负载均衡效果:

1)ip_hash:依据ip分配方式,指定负载均衡器按照基于客户端IP的分配方式,这个方法确保了相同的客户端请求一致发送到相同的服务器,以保证session会话。这样每个访客都固定访问一个后端服务器,可以解决session不能跨服务器的问题。

upstream [服务器组名称]{
  ip_hash;
  server [IP地址]:[端口号];
  server [IP地址]:[端口号];
}

2)轮询:最基本的配置方法,是upstream模块默认的负载均衡策略。每个请求会按时间顺序平均分配到不同的后端服务器。

upstream [服务器组名称]{
  server [IP地址]:[端口号];
  server [IP地址]:[端口号];
}

3)weight:权重方式,在轮询策略的基础上指定轮询的几率。也可以认为是在轮询的基础上新增了一个weight的参数,此参数指定轮询的几率,值为number。

upstream [服务器组名称]{
  server [IP地址]:[端口号] weight=2;
  server [IP地址]:[端口号] weight=8;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

腾讯云演示nginx(若依项目) 的相关文章

随机推荐

  • 02 初识Prometheus - 利用grafana让mysql数据生成折线图,柱状图

    https cloud tencent com developer article 1582979 step1 新建一个表testgraph 用来存放查询的数据 DROP TABLE IF EXISTS testgraph CREATE T
  • vue+electron桌面

    node js安装 cnpm下载 npm install g cnpm registry https registry npmmirror com vue脚手架安装 cnpm install g vue cli 安装 electron脚手架
  • JavaSE的思维导图

    学了这么久的Java我们来做一次整体性的总结 回顾我们所学过的整个知识体系 大致内容包括 初识Java 数据类型与变量 运算符 数据类型与变量 运算符 逻辑控制 方法的使用 数组的定义与使用 类与封装 继承与多态 抽象类与接口 String
  • ChatExcel?

    大家好 我是章北海mlpy 最近在浅学LangChain 在大模型时代 感觉这玩意很有前途 LangChain是一个开源的应用开发框架 目前支持Python和TypeScript两种编程语言 它赋予LLM两大核心能力 数据感知 将语言模型与
  • 模版类运算符重载

    span style font size 18px 自定义分数模版类 运算符重载 同时支持宽字符 wchar t span span style font size 18px span span style font size 18px i
  • 链表(变形)

    单链表结点只有一个指向其后继的指针 使得单链表只能从头结点 依次顺序地向后遍历 要访问某个结点的前驱结点 delete insert 只能从头开始遍历 访问后继结点的时间复杂度为O 1 访问前驱结点的时间复杂度O n 一 双链表 双链表结点
  • oracle语句查询时间范围,oracle时间范围查询

    当时间精确到秒的指标和时间精确到日的时间进行对比是恒不等于的 但是可以判断大于或者等于的情况 举个例子 指标 时间精确到秒 select 时间精确到秒 from table where 时间精确到秒 lt to date 2013 11 2
  • 学校实训密码锁设计(基于STC51单片机)报告

    这里写目录标题 选题的背景与意义 项目内容 51密码锁设计 产品功能 方案设计 方案实施 元件选择 一 电流放大 二 偏置电路 三 开关作用 设计流程 代码 电路仿真 PCB打板 结论 选题的背景与意义 单片微型机简称单片机 它是在一片芯片
  • 时序预测

    时序预测 MATLAB实现基于QPSO LSTM PSO LSTM LSTM时间序列预测 目录 时序预测 MATLAB实现基于QPSO LSTM PSO LSTM LSTM时间序列预测 效果一览 基本描述 程序设计 参考资料 效果一览 基本
  • 如何管理和快速登录多台服务器(基于expect)

    背景 shell快速登录多个机器 平时需要经常切换多个机器 或者需要通过跳板机来回换登录机器 为了便于自己快速登录 和每次找机器 写了登录管理工具https github com cgpeter96 shell blob main logi
  • Unity--使用Line Renderer实现画图划线效果

    using UnityEngine public class Draw MonoBehaviour public GameObject linePrefab 线条渲染器 private LineRenderer line 顶点下标 priv
  • 2023-05-24 题目

    ArrayList源码分析 package java util import java util function Consumer import java util function Predicate import java util
  • Mac电脑远程访问pc端Microsoft Remote Desktop

    Microsoft Remote Desktop是Mac上的远程连接Windows电脑的工具 可以轻松使用应用程序和数据 进行视频和声音流改进的压缩和带宽使用 连接到多个显示器或投影机进行演示等 在弹出的对话框中 输入 Windows 实例
  • java初识之HelloWorld

    Hello World 随便新建一个文件夹 存放代码 新建一个java文件 1 文件后缀名为 java 2 Hello java 注意点 系统可能没有显示文件后缀名 我们需要手动打开 编写代码 public class Hello publ
  • 在connect中使用lambda实现高效的信号/槽关联

    在Qt中 使用QCoreApplication connect 函数连接信号 signal 与槽 slots 的功能 以下是connect函数的三种重载形式 static QMetaObject Connection connect con
  • Linux 命令大全

    系统信息 arch 显示机器的处理器架构 1 uname m 显示机器的处理器架构 2 uname r 显示正在使用的内核版本 dmidecode q 显示硬件系统部件 SMBIOS DMI hdparm i dev hda 罗列一个磁盘的
  • 超模脸、网红脸、萌娃脸...换头像不重样?我开源了5款人脸生成器

    出品 AI科技大本营 ID rgznai100 英伟达近日提出的新一代 StyleGAN 通过对 StyleGAN 的生成效果分析 他们对不完美的工作设计了改进和优化方法 使得生成图片的质量和效果更上一层楼 如今 用 StyleGAN 技术
  • 第四章:综合布线

    一 综合布线 1 PDS综合布线系统的作用优势 1 PDS综合布线 将复杂的强电 弱电 安防系统按照子系统划分 不同的子系统负责不同的功能方便管理和扩展 2 PDS优势 结构清晰方便管理 材料统一先进适应发展 灵活性强易于扩展 增强可靠性节
  • 你如何使用Python制作网站?

    在本文中 我们将讨论如何使用Python制作网站 Python 是一种 1991 年的编程语言 在过去十年中越来越受欢迎 如今 Python编码器在计算机行业中的需求量很大 Python是一种通用编程语言 这意味着它几乎可用于开发任何类型的
  • 腾讯云演示nginx(若依项目)

    负载均衡 负载均衡介绍 Load balancing 即负载均衡 是一种计算机技术 用来在多个计算机 计算机集群 网络连接 CPU 磁盘驱动器或其他资源中分配负载 以达到最优化资源使用 最大化吞吐率 最小化响应时间 同时避免过载的目的 负载