IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Nginx教程(3)—负载均衡 -> 正文阅读

[系统运维]Nginx教程(3)—负载均衡

Nginx教程一
Nginx教程二

3.1 负载均衡-轮询

轮询是Nginx默认使用的策略,轮询算法是最简单的一种负载均衡算法。它的原理是把来自用户的请求轮流分配给内部的服务器:从服务器1开始,直到服务器N,然后重新开始循环。在教程二中已经搭建了一个简单的Tomcat集群,下面对每个Tomcat下的webapp下的index.jsp加上一个表示后面用于区分,访问的是哪个服务器。

在这里插入图片描述

浏览器中访问www.tomats.com,进行多次访问,下面是第一次请求:

在这里插入图片描述

第二次访问:

在这里插入图片描述

第三次访问:

在这里插入图片描述

继续访问会发现Tomcat 1,2,3会轮流被访问到,这就是负载均衡的沦轮询策略

3.2 负载均衡-加权轮询

所谓的加权轮询是在轮询算法上进行的改进,由于每个服务器的性能可能会有差异,性能好的可以多进行一些请求处理,所以我们会给每个服务器加上一个权重,性能越好的权重越大,分配到的请求量越大。下面是在Nginx的核心配置文件Nginx.conf中配置各个服务器的权重

在这里插入图片描述

3.3 upstream指令参数

max_conns

用于限制一个服务器的最大连接数,默认值为0,表示不作任何限制,下面是在Nginx的核心配置文件Nginx.conf中配置

在这里插入图片描述

使用Jmeter进行测试(使用方法见3.4),设置线程数为200,每个线程访问10次

在这里插入图片描述

由于连接数的限制会出现很多失败的请求,并且规律是两个请求后的请求都是失败的

在这里插入图片描述
slow_start

配置集群服务器慢启动,会随着访问量的增大而去慢慢的启动服务器,而不是一开始就启动全部服务器,而设置slow_start的服务器的慢启动的过程是通过权重的逐步增加来实现的(所以要和权重配合使用)。

在这里插入图片描述
down

用于标识服务器的状态为不可用,用户访问不了

backup

backup标注的服务器,表示这是一个备用机,当当前使用的服务器宕机后,它才会被使用

max_fails和fail_timeout

前者表示最大失败次数,如果服务器配置了该参数,则发生在该服务器的请求次数达到了我们定义的次数系统就会认为该服务器已经宕机,会将该服务器踢出集群。后者是指失败的时间,它和前者配合使用,表示如果在后者指定的时间(假如为15s)内失败达到了前者规定的次数,则认为该服务器已经宕机,会将其踢出集群。

3.4 使用JMeter测试集群

Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试。JMeter 最初被设计用于 Web 应用测试,但后来扩展到了其他测试领域,可用于测试静态和动态资源,如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库和 FTP 服务器等等。JMeter 可对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter 能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证程序是否返回了期望结果。为了最大限度的灵活性,JMeter 允许使用正则表达式创建断言。

在这里插入图片描述

  1. 下载与打开

下载地址,直接在官网下载即可。

在这里插入图片描述

打开的主页面如下

在这里插入图片描述

  1. Jmeter的基本使用

添加线程组

在这里插入图片描述

配置线程组

在这里插入图片描述

线程组添加取样器(本质上是线程发送的请求类型),这里选择http类型

在这里插入图片描述

命令行启动tomcat服务(注意Tomcat要装到虚拟机上,而jmeter要装到本机,模拟的是本机作为客户端,虚拟机作为服务端),下面是本机访问服务器上的Tomcat

在这里插入图片描述

配置http访问

在这里插入图片描述

添加监听器(用于得到测试结果),首先添加结果树

在这里插入图片描述

添加聚合报告

在这里插入图片描述

添加用表格查看结果

在这里插入图片描述

点击绿色三角,查看结果

在这里插入图片描述

3.5 负载均衡之IP_hash

上面介绍了负载均衡的轮询、加权轮询算法,IP_hash同样也是负载均衡的一个算法,它根据用户的ip地址,通过hash处理返回一个特定的值,然后根据这个值,将用户的请求分配到特定的服务器进行处理。(底层是用的hash算法),在nginx中配置ip_hash很简单,如下即可:

在这里插入图片描述

使用不同的虚拟机,由于ip地址不同,映射的hash值也不同(也可能相同),所以访问的服务器也会不同(可能相同),注意hash算法映射的是ip地址是前三段,所以属于一个内网的机器会映射到相同的服务器(因为内网的所有机器都是前三段的)。

3.6 一致性hash算法

问题提出,在前面的ip_hash中根据hash算法的原理我们可以知道,当集群中的一台服务器宕机后,此时所有的用户请求的hash值都要重新进行计算,这个工作量是很大的在实际生活中,且用户的原先访问到的资源会全部丢失,用户浏览器的缓冲也会丢失。所以这里提出了一致性hash算法,其原理是将我们的hash值区间范围组织成一个圆形,如下,然后将服务器通过特定的hash算法计算出hash值放置到圆形的特定位置,当用户发送请求时,会计算出hash值,然后在圆环上找到特定位置,沿着顺时针方向找到最近的服务器,如果一个服务器宕机后,它会沿着顺时针方向继续寻找下一个服务器,而不需要重新计算hash值。

在这里插入图片描述

3.7 Nginx控制浏览器缓存

Nginx缓存主要分为下面两个部分

在这里插入图片描述

nginx控制浏览器缓存是通过expires指令,指令格式为expires time,配置如下,表示浏览器的缓存的寿命

在这里插入图片描述

expires @ 22h30m,该指令是expires另外的一种使用方法,表示在22点30分浏览器缓存过期。
expires -1h ,该指令表示缓存在当前时间的前一个小时过期
expires epoch,该指令不设置浏览器缓存
expires off,表示expires关闭
expires max,可以理解为浏览器缓存永不过期(因为过期时间设计的特别久)

3.8 Nginx反向代理缓存

前面介绍了浏览器缓存,下面介绍上游服务器到Nginx服务器的缓存,这里我已经提前将一张图片上传到了所有tomcat服务器中,并可以在本机访问到,如下:

在这里插入图片描述

下面在Nginx核心配置文件中进行配置,然后重启nginx服务,配置生效
在这里插入图片描述
可以看到在nginx文件目录下出现了upstream_cache文件夹,且没有内容

在这里插入图片描述

在本机访问前面的图片,会发现upstream_cache中出现了缓存,且1分钟后缓存会消失(原因见前面配置)

在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-12-25 11:43:44  更:2022-12-25 11:44:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 19:14:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码