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

Nginx正向代理,反向代理,负载均衡

Nginx正向代理,反向代理,负载均衡

Nginx当中有两种代理方式:

七层代理(http协议)

四层代理(tcp/udp流量转发)

七层代理:七层代理,代理的是http的请求和响应

客户端请求代理服务器,由代理服务器转发客户端的http请求,转发到内部的服务器(可以是单台,也可以是一组),后端的webserver,再把响应送达代理服务器,最后再到客户端。

正反向代理:

反向代理:客户端访问的是代理服务器,代理服务器转发http请求,但是客户端不知道访问的是哪一台服务器

正向代理:客户端也是访问代理服务器,代理服务器转发请求,客户端只代理服务器的地址,后端的webserverd的ip地址,客户端也并不知道

四层代理:基于tcp/udp的协议转发处理功能,基于ip和端口实现负载均衡,或者正向代理

四层代理无法获取http请求中的URL信息,只能对tcp/udp的数据包进行转发

四层代理和七层代理的区别:

  1. 七层代理都是都是动态户,需要对http的请求进行处理和解析,解析过程中,可以根据请求头和请求体的内容进行流量控制,内容过滤,转发速度比较慢,但是提供的功能更高级,用户体验感更好
  2. 四层代理基于ip地址和端口号,只负责将ip和端口转到后端服务器,不对请求做任何处理,只是负责转发而已,而且四层走的都是内核,四层转发的速度比较快,四层代理无法提供更高级的功能,只是转发。

选择场景:
七层代理:需要对http请求进行控制和处理,只能选择七层代理(常见的代理方式)

四层代理:只需要转发tcp/udp数据包,可以选择四层,也可以选择七层

七层可以对ip和端口进行转发,也可以Udine域名进行代理

四层只能是ip和端口

负载均衡算法:有些事无法在四层代理使用

模块:

七层代理只能写在http模块的全置配置当中

Upstream:用于http请求,支持返向代理,负载均衡,缓存功能

在upstream模块中可以配置对个服务器

四层代理模块:

Stream只能写在全局模块当中的单独配置。Stream代理无谓协议,只管流量

正向代理的配置方法:类似于VPN科学上网,加速器

正向代理:要访问哪去哪,

如何配置正向代理:

分别访问页面是否内容正常:

回到test1:

企业架构都是反向代理:

客户端通过代理服务器访问,但是后端多台

如何配置反向代理:

Test1

实现轮循:

七层代理:

http全局配置:

Upstream test {

   Server 192.168.233.62;

   Server 192.168.223.63;

}

Location {

Proxy_pass http://test;

}

负载均衡的算法:

1.rr(round robin)负载均衡简单的算法,也叫轮询,请求轮流分配到后端服务器

默认算法,可以不加

默认算法,每发起一次都是新的请求,服务器上没有缓存,每一次状态码都是200

用于服务器处理能力相近,而且,对访问量比较小的网站适用

2.加权轮询算法weight,建立在默认轮询算法的基础之上,为后端服务器分配不同的权重,处理能力强的服务器可以分配的权重值要偏高一些,轮询次数基本上按照权重进行分配,服务器上也没有缓存,中大型网站可以使用加权轮询。权重高的服务器频繁的请求响应,权重低的可能闲置,会和例外一种算法配合使用

3.最少连接数算法,会把请求放送到连接数量较少的后端服务器上最少连接数算法也可以单独使用,但是一般都是结合加权轮询一块使用,避免所有的请求都发送到处理能力强的服务器,提高整个集群的稳定性中型网址,大型网站,日程访问可以满足。

4.ip_hasp:iphash会根据客户端ip地址解析出一个hash值,然后将请求放到对应的后端服务器,下一次用户在访问时,同一客户端的请求将会被分配到同一台服务器

特点:ip_hasp第一次访问之后,后续访问是有缓存的

            如果后端服务器的数量发生变化,可能会进行重新分配

            Ip_hash适用于高并发,请求不会跳转,请求的是数据

5.url算法,也叫url_hash 根据请求url地址算hash值,然后将请求发送到相应得后端服务器,相同的url地址请求会被分配到同一服务器

Url_hash和ip_hash是结合在一块使用的,可以适用于高并发较高的场景,只要是ip_hash和uri_hash访问之后第二次都是访问缓存,可以降低服务器的压力

如何基于域名:

配置两台客户端的地址:

Test2

Test3

主机1做映射

主机二做映射

主机3做映射

主机的映射地址也要写入客户机当中

到火狐浏览器

四层反向代理:

在全局模块当中配置

可能会报错,看日志,改一下端口,端口被占用

在四层代理中可以使用加权轮询,最小连接数也可以实现负载均衡

但是ip_hash url_hash不可以在stream中使用

四层不能对请求处理,只是转发数据包

http七层处理:可以处理请求地址和请求的url

相关文章:

Nginx正向代理,反向代理,负载均衡

Nginx正向代理,反向代理,负载均衡 Nginx当中有两种代理方式: 七层代理(http协议) 四层代理(tcp/udp流量转发) 七层代理:七层代理,代理的是http的请求和响应 客户端请求…...

安防视频监控平台EasyCVR出现视频流播放卡顿情况,如何优化?

视频集中存储/云存储/视频监控管理平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管理、按需调阅、全网分发、智能分析等。AI智能/大数据视频分析EasyCVR平台已经广泛应用在工地、工厂、园区、楼…...

VRRP基础

1.VRRP概述 VRRP( Virtual Router Redundancy Protocol,虚拟路由器冗余协议)既能够实现网关的备份,又能解决多个网关之间互相冲突的问题,从而提高网络可靠性。 通过把几台路由设备联合组成一台虚拟的“路由设备”&…...

虚实融合 智兴百业 | 赵捷副市长莅临拓世科技集团筹备展台指导,本月19号!拓世科技集团与您相约世界VR产业大会

新时代科技革命中,虚拟现实技术、5G和“元宇宙”概念崛起,助力全球范围内的数字经济和产业转型。我国也正迈向高质量发展攻坚阶段,在中部腹地的江西,政府结合全球技术趋势和自身发展需求,选择虚拟现实为新的经济增长点…...

2000-2023年省市县人工智能企业数量数据

2000-2023年省市县人工智能企业数量数据 1、时间:2000-2023年7月 2、指标:所属年度、所属省份、所属城市、所属区县、人工智能企业数量(省人工智能企业数量、地级市人工智能企业数量、区县人工智能企业数量) 3、来源&#xff1…...

CSP模拟58联测20 牵着她的手

题目大意 考虑所有 n n n行 m m m列的矩阵,矩阵中每个元素的值都在 1 1 1到 k k k之间。对于这样的矩阵 A A A,按照下面规则构造序列 x 1 , x 2 , ⋯ , x n m x_1,x_2,\cdots,x_{nm} x1​,x2​,⋯,xnm​: 对于 1 ≤ i ≤ n 1\leq i\leq n …...

电脑版便签软件下载用哪个?

在面对每天繁忙的工作日程,电脑是许多上班族不可或缺的工作助手,而一款得心应手的电脑便签软件,更是可以帮助大家记录、提醒、督促各项任务按时完成的得力助手。那么,究竟在众多的电脑便签软。件中,哪一位能够真正成为…...

别再卷组件库了,Vue 拖拽库都断代了!

前言 最近在测试 Tailwind CSS 和 Uno CSS 这两种原子化 CSS 工具是否能够有效减少打包后的文件体积时,先开始分析这些工具的优缺点,然后再直接上数据,最后做了一款经典的 TodoList 来进行测试,文章都写好了就差最后的数据了。 …...

利用服务器打造创新的在线社区

在这个数字化时代,服务器是实现创意项目的关键工具之一。虽然有许多用途,但其中最引人注目的是将服务器用于构建创新的在线社区。 为什么选择在线社区? 在线社区是连接人们、促进互动和分享知识的强大工具。它们可以围绕共同的兴趣、目标或…...

CSS动画实现节流

目录 介绍: 实现代码: 介绍: 节流指的避免过于频繁的执行一个函数,例如:一个保存按钮,为了避免重复提交或者服务器考虑,往往需要对点击行为做一定的限制,不然会频繁的请求接口,之前基本上是通过js去控制节…...

Apache Log4j Server (CVE-2017-5645) 反序列化命令执行漏洞

文章目录 Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645)1.1 漏洞描述1.2 漏洞复现1.2.1 环境启动1.2.2 漏洞验证1.2.3 漏洞利用 1.3 加固建议 Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645) 1.1 漏洞描述…...

视口 css

视口是浏览器上显示网页的一块区域,大小并不局限于浏览器可视区域范围。PC端和移动端视口差别很大。PC端中视口宽度始终与浏览器窗口宽度一致,移动端视口与浏览器窗口宽度完全独立。 PC端 PC端视口大小等于浏览器窗口可视区域大小,无论浏览…...

Puppeteer记录操作过程及优秀的开源插件(五)

Puppeteer记录操作过程及优秀的开源插件(五) Puppeteer记录操作过程及优秀的开源插件(五)一、简介二、自动生成测试代码三、优秀的开源插件四、参考案例 一、简介 本节我们将介绍通过浏览器工具记录用户的实际操作,并…...

联邦学习+梯度+梯度剪枝

联邦学习需要参与者在每一次的本地训练后,上传所更新的模型参数并与其他参与者共享,而参数更新中仍有可能包含所有者的敏感信息 解决方案: 加密方法(安全多方计算、同态加密)通过将明文编码为密文的方式,…...

提高研发效率还得看Apipost

随着数字化转型的加速,API(应用程序接口)已经成为企业间沟通和数据交换的关键。而在API开发和管理过程中,API文档、调试、Mock和测试的协作显得尤为重要。Apipost正是这样一款一体化协作平台,旨在解决这些问题&#xf…...

Elasticsearch使用——结合MybatisPlus使用ES es和MySQL数据一致性 结合RabbitMQ实现解耦

前言 本篇博客是一篇elasticsearch的使用案例,包括结合MybatisPlus使用ES,如何保证MySQL和es的数据一致性,另外使用了RabbitMQ进行解耦,自定义了发消息的方法。 其他相关的Elasticsearch的文章列表如下: Elasticsear…...

什么是CSGO大行动,2023年CSGO大行动时间预测

什么是CSGO大行动,2023年CSGO大行动时间预测 什么是CSGO大行动,2023年CSGO大行动时间预测 那天群里在提大行动,不明所以的新同学在问,什么是大行动,是不是官方红锁大行动要来了?当然不是,别自己…...

Pycharm中终端不显示虚拟环境名解决方法

文章目录 一、问题说明:二、解决方法:三、重启Pycharm 一、问题说明: Pycharm中打开项目配置完需要的虚拟环境后,在Terminal(终端)中无法切换及显示当前需要运行代码的虚拟环境。 比如以下一种情况&#…...

某翻译网站webpack 全扣js逆向法

持续创作文章,只是为了更好的思考 如下内容,如果有写的不清楚,不对的地方,也请大家提醒我一下,谢谢! 本次的目标是某道翻译网站,相信各位爷应该明白,这次逆向的整体做法还是把webpac…...

【C++】C++11 ——— 可变参数模板

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:C学习 🎯长路漫漫浩浩,万事皆有期待 上一篇博客:【C】STL…...

龙虎榜——20250610

上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...

PHP和Node.js哪个更爽?

先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...

JVM 内存结构 详解

内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: ​ 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

快速排序算法改进:随机快排-荷兰国旗划分详解

随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...

算法—栈系列

一&#xff1a;删除字符串中的所有相邻重复项 class Solution { public:string removeDuplicates(string s) {stack<char> st;for(int i 0; i < s.size(); i){char target s[i];if(!st.empty() && target st.top())st.pop();elsest.push(s[i]);}string ret…...

LINUX编译vlc

下载 VideoLAN / VLC GitLab 选择最新的发布版本 准备 sudo apt install -y xcb bison sudo apt install -y autopoint sudo apt install -y autoconf automake libtool编译ffmpeg LINUX FFMPEG编译汇总&#xff08;最简化&#xff09;_底部的附件列表中】: ffmpeg - lzip…...

本地部署drawDB结合内网穿透技术实现数据库远程管控方案

文章目录 前言1. Windows本地部署DrawDB2. 安装Cpolar内网穿透3. 实现公网访问DrawDB4. 固定DrawDB公网地址 前言 在数字化浪潮席卷全球的背景下&#xff0c;数据治理能力正日益成为构建现代企业核心竞争力的关键因素。无论是全球500强企业的数据中枢系统&#xff0c;还是初创…...

Go爬虫开发学习记录

Go爬虫开发学习记录 基础篇&#xff1a;使用net/http库 Go的标准库net/http提供了完善的HTTP客户端功能&#xff0c;是构建爬虫的基石&#xff1a; package mainimport ("fmt""io""net/http" )func fetchPage(url string) string {// 创建自定…...