使用nginx实现负载均衡

2023-11-07

一、什么是负载均衡

随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,使用单台机器可能会造成性能问题和单点故障,因此需要多台机器来进行性能的水平扩展以及避免单点故障。为了将不同的用户的流量分发到不同的服务器上面,保持每台机器处理请求的数量得以均衡,因此需要负载均衡来帮助我们完成这一过程。

将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,这也就是我们所说的负载均衡。
 


 

二、使用nginx实现负载均衡

案例:

在Windows浏览器的地址栏输入地址 192.168.1.103/edu/a.html,实现负载均衡效果,平均将请求分配给 8080 和 8081 端口处理。(192.168.1.103 为本机 linux 的 ip 地址)
(1)准备工作
  ① 在 linux 系统准备两台 tomcat 服务器,一台端口 8080,一台端口8081
  ② 在两台 tomcat 里面 webapps 目录中,创建名称是 edu 文件夹,在 edu 文件夹中创建
  页面 a.html(在html页面中写明当前服务器的端口号8080/8081),用于测试
  ③ 
关闭 linux 系统的防火墙或者开放需要被访问的端口

(2)具体配置
  ① 修改 linux 系统中nginx的配置文件 nginx.conf,默认在 /usr/local/nginx/conf 目录下。
  对配置文件的server块进行如下修改,并添加upstream的对应内容:

 
② 保存修改后启动 nginx ,在Windows浏览器中输入 192.168.1.103/edu/a.html ,页面跳转成功,并且每次刷新发送新请求能实现负载均衡,轮流由8080端口和8081端口的tomcat处理。

(3)nginx 负载均衡分配服务器的策略
① 轮询(默认策略)
 
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器宕机,会被nginx自动剔除。
 
② weight
weight 代表权重默认为 1,权重越高被分配的客户端越多。
 
③ ip_hash
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器。
 
④ fair
按照后端服务器的响应时间来分配请求,响应时间短的优先分配。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用nginx实现负载均衡 的相关文章

随机推荐

  • c语言如何快速看懂别人的程序,探究如何快速看懂单片机程序方法

    在现实中 我相信有很多刚刚接触单片机的同学 简直是无从下手 打开一个程序 更会被复杂的结构和密密麻麻的代码吓到 产生退缩的想法 这篇文章带你了解一下单片机程序 我对单片机的总结 单片机其实就是一个芯片 内部有若干寄存器 外部有若干引脚 我们
  • Hyperledger Fabric学习笔记——6.账本存储

    1 账本存储概念 peer节点做账本存储 orderer是临时存储区块 peer节点是账本存储的持久化 会改变世界状态 文件系统 区块是存储为文件的 区块索引 用于查询区块 是用levelDB实现的 状态数据库 一般存放区块链最新状态 数据
  • git push解决办法: ! [remote rejected] master -> master (pre-receive hook declined)

    前天准备上传一个project到GitLab上 但是试了很多次都上传不上去 报错如下 remote rejected master gt master pre receive hook declined 截图 一开始还以为自己用户名和密码错
  • PHP字符串反转

    php自带反转函数strrev可以轻松将 hello world 改写为 dlrow olleh 但如果要自己写一个反转函数应该怎么实现呢 1 function myStrRev str len strlen str res for i 1
  • kobject_uevent_env 内核通知android有状态变化的一种方法

    以下文字来源网络 kernel include
  • 一个奇怪的GCD内存不释放的问题

    这个问题是我的同学提出来的 原帖在http bbs csdn net topics 390933411 大概是这样 pre class objc IBAction touchToCreateThread id sender int i 10
  • qcad编译001

    qcad plugin 报错 pluginclass not name type goetz 2011年2月27日 02 22 qmake s variables are not available in the C preprocesso
  • Linux大全

    奔跑吧Linux内核卷1 基础架构 第2版 https arch arm boot git clone https exports exports PATH pwd和 PWD的联系与区别 https blog csdn net weixin
  • c# .netcore oracle连接工具类

    1 先右键 添加NeGet包 引入Oracle ManagedDataAccess dll 2 将该类加入项目中 工具类 using System using System Collections using System Collecti
  • vue使用高德地图,精确定位&ip定位,获取城市、地区位置

    1 高德地图准备 点进入网址 https lbs amap com api javascript api guide abc prepare 1 注册开发者账号 2 进入控制台 3 申请高德地图key 2 在页面添加 JS API 的入口脚
  • 《Java程序设计》实验报告

    实验内容 面向对象程序设计 1 定一个名为Person的类 其中含有一个String类型的成员变量name和一个int类型的成员变量age 分别为这两个变量定义访问方法和修改方法 另外再为该类定义一个名为speak的方法 在其中输出name
  • 面试利器(一)-------交换排序(冒泡排序和快速排序)

    最近我在找工作 看了一下每一个公司的要求 几乎每个公司都要求我们熟练掌握几种基本的算法 下面我用最简单的语言写写我的理解 抓住关键我们很快就能理解几种基本的算法 全部都以从小到大排列 一 冒泡排序 抓住关键字 交换 两两交换 冒泡 向上浮动
  • 基于SSM+layui实现用户注册新增功能

    注册新增原理 判断用户名与数据表中信息是否相同 相同则返回用户新增失败 反之新增成功 注册用户密码使用md5加密方式存储到数据库 一 实现效果 用户新增界面 二 数据表 user 三 代码实现 1 bean层 UserInfo AllArg
  • 亲测有效,如何用ChatGPT 生成高质量原创视频

    尽管ChatGPT目前缺乏视频生成的能力 但我们可以借助插件实现视频生成 特别是对于那些从事Tiktok海外运营的用户而言 Visla和HeyGen是我目前测试的两款可生成视频的插件 首先登陆您的ChatGPT帐号 并单击邮箱 勾选设置 S
  • CUDA的作用

    显卡中CUDA是什么及作用介绍 CUDA Compute Unified Device Architecture 显卡厂商NVidia推出的运算平台 CUDA是一种由NVIDIA推出的通用并行计算架构 该架构使GPU能够解决复杂的计算问题
  • 联合memcache,repcached,magent,monit四个组件搭建高可用集群方案

    一 基本介绍 1 组件承担的角色 1 memcache负责缓存对象 2 repcached负责单主单从的同步备份 3 magent代理实现N主N备 4 monit监听以上组件的各个实例端口 保证故障自动重启 2 集群思路 1 利用repca
  • Unlock PeopleSoft Objects All at Once

    Change control is used in Application Designer to lock definitions and track history changes for each object Change cont
  • 图解NCHW与NHWC数据格式

    图解NCHW与NHWC数据格式 田海立 CSDN CSDN博客 nchw 流行的深度学习框架中有不同的数据格式 典型的有NCHW和NHWC格式 本文从逻辑表达和物理存储角度用图的方式来理解这两种数据格式 最后以RGB图像为例来加深NHWC和
  • Adam优化算法详细解析

    本文转载于以下博客地址 http www atyun com 2257 html 如有冒犯 还望谅解 Adam优化算法是一种对随机梯度下降法的扩展 最近在计算机视觉和自然语言处理中广泛应用于深度学习应用 在引入该算法时 OpenAI的Die
  • 使用nginx实现负载均衡

    一 什么是负载均衡 随着互联网的发展 业务流量越来越大并且业务逻辑也越来越复杂 使用单台机器可能会造成性能问题和单点故障 因此需要多台机器来进行性能的水平扩展以及避免单点故障 为了将不同的用户的流量分发到不同的服务器上面 保持每台机器处理请