网络安全01--负载均衡

目录

一、环境准备

1.1三台虚拟机

二、开始搭建负载均衡:

2.1准备一下源

2.2正式安装

2.3Nginx安装情况

三、负载均衡--轮询(round robin)

3.1在 http 部分添加如下负载均衡配置:

3.2简单解释一下server端:

3.3最终实现结果:

3.2.1第一次访问:

4.2刷新:

四、负载均衡-权重(weight)

4.1简介

4.2修改内容

4.3结果

4.3.1第一次:

4.3.2第二次:

4.3.3第三次:

五、负载均衡--ip_hash

5.1简介

5.2修改nginx.conf内容

5.3结果

六、负载均衡--fair(第三方 )

6.1简介

6.2去gethub上下载nginx-upstream-fair

6.3nginx-upstream-fair环境搭建

6.2.1解压

6.2.2编译加制作

 6.2.2结果

七、负载均衡---url_hash(第三方)

7.1简介

7.2举个例子

八、负载均衡---least_conn

8.1简介

8.2举个例子

8.3看看结果


一、环境准备

1.1三台虚拟机

这里我用的centos,但其实其他的也一样,道理就是这个理

二、开始搭建负载均衡:

2.1准备一下源

为了我们后面下载的快我们首先进行换源操作:

cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.backup  #备份采取自愿
sed -e 's|^mirrorlist=|#mirrorlist=|g' \-e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos|g' \-i.bak \/etc/yum.repos.d/CentOS-*.repo

 ​​​​​ 刚换完源,清除缓存再生成新的缓存:

sudo yum makecache

到这一步证明你前面的没任何问题:

2.2正式安装

参考我之前nginx安装文章,无脑操作

http://t.csdnimg.cn/1r47E

最后有可能访问不到,把自己的防火墙和setenforce关掉即可

systemctl status firewalld  #查看状态
systemctl stop firewalld  #关闭防火墙
systemctl disable firewalld.service #我嫌它烦,直接开机自启给关掉了,你们自己看自己情况
setenforce 0

2.3Nginx安装情况

其他两个机子同理

至此三台Nginx环境配置完毕

三、负载均衡--轮询(round robin)

3.1在 http 部分添加如下负载均衡配置:

修改配置文件,反向代理达到负载均衡效果 

我使用了 upstream 模块定义了三台后端服务器。然后,在 location / 中使用 proxy_pass 将请求转发到后端服务器,实现的负载均衡

3.2简单解释一下server端:

  1. proxy_set_header Host $host;

    这个指令将请求的 Host 头的值设置为后端服务器接收到的请求头。$host 是一个 Nginx 内置变量,表示客户端请求中的 Host 头的值。
  2. proxy_set_header X-Real-IP $remote_addr;

    这个指令将客户端的真实 IP 地址设置为后端服务器接收到的请求头。$remote_addr 是一个 Nginx 内置变量,表示客户端的 IP 地址。
  3. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    这个指令将包含原始客户端 IP 地址的 X-Forwarded-For 头设置为后端服务器接收到的请求头。$proxy_add_x_forwarded_for 是一个 Nginx 内置变量,表示原始的 X-Forwarded-For 头的值,如果这个头不存在,则添加客户端的真实 IP 地址。
  4. proxy_set_header X-Forwarded-Proto $scheme;

    这个指令将客户端请求使用的协议(HTTP 或 HTTPS)设置为后端服务器接收到的请求头。$scheme 是一个 Nginx 内置变量,表示请求的协议。

3.3最终实现结果:

修改nginx下html中默认访问的内容,我头方便呢,但是原理就是如此,我们此篇文章只研究负载均衡

3.2.1第一次访问:

4.2刷新:

四、负载均衡-权重(weight)

4.1简介

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

4.2修改内容

修改一下轮询权重

4.3结果

4.3.1第一次:

4.3.2第二次:

4.3.3第三次:

五、负载均衡--ip_hash

5.1简介

根据请求者ip的hash值将请求发送到后台服务器中,可以保证来自同一ip的请求被打到固定的机器上,可以解决session问题。常用的解决session不一致的方式还有部署缓存服务器和统一存储服务器.

5.2修改nginx.conf内容

5.3结果

不管我刷新几次都打到同一个点上

六、负载均衡--fair(第三方 )

6.1简介

可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配,Nginx本身默认是不支持fair的,如果需要使用这种调度算法,必须下载Nginx的upstream_fair模块。

6.2去gethub上下载nginx-upstream-fair

 GitHub - gnosek/nginx-upstream-fair: The fair load balancer module for nginx

6.3nginx-upstream-fair环境搭建

6.2.1解压

unzip nginx-upstream-fair-master.zip

6.2.2编译加制作

./configure --with-http_ssl_module --add-module=/absolute/path/to/nginx-upstream-fair
make
make install

 6.2.2结果

gethub上面有现成的搭好的案例我就不搭了用他的去看

Welcome to nginx! (localdomain.pl)

七、负载均衡---url_hash(第三方)

7.1简介

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,可以进一步提高后端缓存服务器的效率,Nginx本身默认是不支持url_hash的,如果需要这种高度算法,必须安装Nginx的hash软件包。

7.2举个例子

例如:

在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法

upstream backend {
server squid1:3128;server squid2:3128;hash $request_uri;hash_method crc32;}

八、负载均衡---least_conn

8.1简介

根据后端服务器的连接状况进行分配客户请求,连接最少的服务器将被有限分配客户端请求。

8.2举个例子

 

8.3看看结果

8.3.1谷歌访问一个

8.3.2火狐访问一个

8.3.3看看结果

两个因为都在第二个负载均衡机子上,所以edge不管怎么刷新都在第一台机子上这就是least_conn的妙用 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/654283.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS-Window常见对象

location对象 location的数据类型是对象,它拆分并保存了URL地址的各个组成部分 常用属性和方法: 1)href属性获取完整的URL地址,对其赋值时用于地址的跳转 //可以得到当前文件URL地址 console.log(location.href) //可以通过js…

GPT-SoVITS 测试

开箱直用版(使用 AutoDL) step1 打开地址 https://www.codewithgpu.com/i/RVC-Boss/GPT-SoVITS/GPT-SoVITS-Official 选择 AutoDL创建实例,选择 3080ti 机器 step2 创建好实例之后,进入命令行,输入命令 echo {}>…

防御保护--智能选路

目录 就近选路 策略选路--PBR DSCP优先级 智能选路--全局路由策略 1.基于链路带宽的负载分担 2.基于链路质量进行负载分担 3.基于链路权重进行负载分担 4.基于链路优先级的主备备份 ​编辑 DNS透明代理 就近选路 我们希望在访问不同运营商服务器时,通过对…

使用机器学习算法检测交易中的异常行为

交易中的异常检测意味着识别交易或相关活动中的异常或意外模式。这些模式被称为异常或异常值,明显偏离预期规范,可能表明存在不规则或欺诈行为。 异常检测在各种业务中发挥着至关重要的作用,尤其是那些涉及金融交易、在线活动和安全敏感操作…

SVG 字体 – SVG symbol(16)

简介 symbol 元素用来定义可重用的标记。嵌套在symbol中的形状不会显示,除非其被use元素引用。 例子 <svg width="500" height="100"><symbol id

002-00-01【大红ai源码】如何阅读dolphinscheduler源码------by孤山村头王大爷家女儿大红

【ai阅读源码-dolphinscheduler】 大红&#xff1a;你知道dolphinscheudler 吗大红&#xff1a;如何阅读dolphinscheduler 的源码 大红&#xff1a;你知道dolphinscheudler 吗 通义灵码&#xff1a; 是的&#xff0c;我知道DolphinScheduler。DolphinScheduler&#xff08;海豚…

TensorFlow Lite中文本分类在Android上的实践

#1 Tensorflow Lite TensorFlow Lite(后续简称TFL) 是 Google 开发的一个用于移动设备和嵌入式设备的开源库,旨在为移动终端设备提供机器学习推断。它是 TensorFlow 框架的轻量级版本,专门优化了模型的大小和性能,以适应资源受限的移动设备和嵌入式系统。 TFL 提供了一种在移…

go包与依赖管理

包&#xff08;package&#xff09; 包介绍 Go语言中支持模块化的开发理念&#xff0c;在Go语言中使用包&#xff08;package&#xff09;来支持代码模块化和代码复用。一个包是由一个或多个Go源码文件&#xff08;.go结尾的文件&#xff09;组成&#xff0c;是一种高级的代码…

LiveGBS流媒体平台GB/T28181功能-支持配置开启 HTTPS 服务什么时候需要开启HTTPS服务

LiveGBS功能支持配置开启 HTTPS 服务什么时候需要开启HTTPS服务 1、配置开启HTTPS1.1、准备https证书1.1.1、选择Nginx类型证书下载 1.2、配置 LiveCMS 开启 HTTPS1.2.1 web页面配置1.2.2 配置文件配置 2、验证HTTPS服务3、为什么要开启HTTPS3.1、安全性要求3.2、功能需求 4、搭…

【python】使用aiohttp库编写一个简单的异步服务器

1. aiohttp介绍 aiohttp 是一个用于编写异步 HTTP 客户端和服务器的 Python 库。它建立在 Python 的 asyncio 库之上&#xff0c;提供了一种方便的方式来处理异步请求和响应。 官网地址&#xff1a;Welcome to AIOHTTP — aiohttp 3.9.1 documentation 以下是 aiohttp 的一些…

大模型微调报错:RuntimeError: expected scalar type Half but found Float

微调chatglm 报错RuntimeError: expected scalar type Half but found Float 1. 背景 博主显卡&#xff1a;3090 最初的设置&#xff1a;bfloat16 开始训练后&#xff0c;线性层报错 2. 解决: 统一代码中所有精度 1&#xff09;将模型和数据精度都设置为torch.float32/torc…

多维时序 | Matlab实现RIME-TCN-Multihead-Attention霜冰算法优化时间卷积网络结合多头注意力机制多变量时间序列预测

多维时序 | Matlab实现RIME-TCN-Multihead-Attention霜冰算法优化时间卷积网络结合多头注意力机制多变量时间序列预测 目录 多维时序 | Matlab实现RIME-TCN-Multihead-Attention霜冰算法优化时间卷积网络结合多头注意力机制多变量时间序列预测效果一览基本介绍程序设计参考资料…

uniapp 解决键盘弹出页面内容挤压问题

page.json 配置 加 “app-plus”: { “softinputMode”: “adjustResize” } {"path": "pages/jxx/xx","style": {"navigationBarTitleText": "贺卡DIY","enablePullDownRefresh": false,"app-plus": {…

IndexedDB入门

https://www.cnblogs.com/zhangzuwei/p/16574791.html 注意 1.删除表&#xff0c;创建表只能在数据库版本升级里面进行。 2.keyPath: key 要和表字段对应&#xff0c;而且格式要一样&#xff0c;不然不运行不报错。 3.使用 autoIncrement: true 代替 keyPath: key&#xff…

怎么把png格式图片存储到二维码中?图片的二维码生成方法

随着二维码的广泛应用&#xff0c;越来越多的人开始探索如何将不同格式的图片与二维码相结合&#xff0c;以实现更丰富、更有吸引力的信息传递方式。在这个过程中&#xff0c;PNG格式的图片作为一种常见的无损压缩图像格式&#xff0c;被广泛应用于网络、移动应用和数字媒体等领…

Nginx中的关于配置HTTPS模块详解

Nginx中的关于配置HTTPS模块详解 Nginx是一个高性能的Web服务器和反向代理服务器&#xff0c;它支持多种协议&#xff0c;包括HTTP、HTTPS、FTP等。在Nginx中&#xff0c;HTTPS模块提供了对HTTPS的支持&#xff0c;使得网站可以安全地使用HTTPS进行数据传输。本文将详细介绍Ng…

深入解析HTTPS:安全机制全方位剖析

随着互联网的深入发展&#xff0c;网络传输中的数据安全性受到了前所未有的关注。HTTPS&#xff0c;作为HTTP的安全版本&#xff0c;为数据在客户端和服务器之间的传输提供了加密和身份验证&#xff0c;从而确保了数据的机密性、完整性和身份真实性。本文将详细探讨HTTPS背后的…

10.Elasticsearch应用(十)

Elasticsearch应用&#xff08;十&#xff09; 1.为什么需要聚合操作 聚合可以让我们极其方便的实现对数据的统计、分析、运算&#xff0c;例如&#xff1a; 什么品牌的手机最受欢迎&#xff1f;这些手机的平均价格、最高价格、最低价格&#xff1f;这些手机每月的销售情况如…

vue使用富文本

1、安装 cnpm install vue-quill-editor2、在main.js中引入 // 富文本 import VueQuillEditor from vue-quill-editor // require styles 引入样式 import quill/dist/quill.core.css import quill/dist/quill.snow.css import quill/dist/quill.bubble.css Vue.use(VueQuill…

vite项目创建

1.使用命令创建一个vite项目 npm init vuelatest vite.config.js配置 import { fileURLToPath, URL } from "node:url";import { defineConfig, loadEnv } from "vite"; import vue from "vitejs/plugin-vue"; export default defineConfig(({…