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

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

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

相关文章

开源Vue盲盒商城4.0源码/网页盲盒源码/前端uniapp后端thinkphp+安装教程/亲测

源码简介: 开源Vue盲盒商城4.0源码,它是打包小程序app的网页盲盒源码,亲测可用,它是采用vueTP5框架开发开源盲盒网站源码,附带了安装教程。 简单测试过了,可以使用,大家可以自测下。 前端uniapp后端think…

Elasticsearch Relevance Engine---为AI变革提供高级搜索能力[ES向量搜索、常用配置参数、聚合功能等详解]

Elasticsearch Relevance Engine—为AI变革提供高级搜索能力[ES向量搜索、常用配置参数、聚合功能等详解] 今天要介绍的 Elasticsearch Relevance Engine™ (ESRE™),提供了多项用于创建高度相关的 AI 搜索应用程序的新功能。ESRE 站在 Elastic 这个搜索领域的巨人…

数据库设计与前端框架

数据库设计与前端框架 学习目标: 理解多租户的数据库设计方案 熟练使用PowerDesigner构建数据库模型理解前端工程的基本架构和执行流程 完成前端工程企业模块开发 多租户SaaS平台的数据库方案 多租户是什么 多租户技术(Multi-TenancyTechnology&a…

Python8-使用json模块解析JSON文件

Python8-使用json模块解析JSON文件 json简介json模块使用 json简介 JSON (JavaScript Object Notation) 是一种用于存储和交换数据的轻量级数据格式。是一种常用的数据格式,用于在不同应用程序之间交换数据。 JSON 文件由键值对组成,键和值之间使用冒号…

C++算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例

相关 源码测试用例下载 https://download.csdn.net/download/he_zhidan/88430716 包括4个压缩包,初始代码,实现前缀和,实现前缀积,实现前缀异或。都是在前者的基础上修改的。 本博文是CSDN学院课程的讲义 https://edu.csdn.net/c…

15.2 主机探测与路由追踪

Ping 使用 Internet 控制消息协议(ICMP)来测试主机之间的连接。当用户发送一个 ping 请求时,则对应的发送一个 ICMP Echo 请求消息到目标主机,并等待目标主机回复一个 ICMP Echo 回应消息。如果目标主机接收到请求并且网络连接正常…

【网络协议】聊聊从物理层到MAC层 ARP 交换机

物理层 物理层其实就是电脑、交换器、路由器、光纤等。组成一个局域网的方式可以使用集线器。可以将多台电脑连接起来,然后进行将数据转发给别的端口。 数据链路层 Hub其实就是广播模式,如果A电脑发出一个包,B、C电脑也可以收到。那么数据…

ZKP4.1 SNARKs via Interactive Proofs (Justin Thaler)

ZKP学习笔记 ZK-Learning MOOC课程笔记 Lecture 4: SNARKs via Interactive Proofs (Justin Thaler) 4.1 Interactive Proofs: Motivation and Model Interactive Proofs P solves problem, tells V the answer. Then they have a conversation.P’s goal: convince V the …

1626 无矛盾的最佳球队(排序+动态规划)(灵神笔记)

题目 1626 假设你是球队的经理。对于即将到来的锦标赛,你想组合一支总体得分最高的球队。球队的得分是球队中所有球员的分数 总和 。 然而,球队中的矛盾会限制球员的发挥,所以必须选出一支 没有矛盾 的球队。如果一名年龄较小球员的分数 严…

java基础练习,九九乘法表(java版),计算器

简介 对于有了解,但是了解不深的同学,学习Java总是感觉一看就会,一些就废。往往需要一些实操练习,来夯实我们的学习结果。九九乘法表和计算器都是在编程学习领域比较经典的案例。本文为大家讲解一下两个基础练习涉及到一些基础知…

【黑夜送书第一期】好书来袭,AI时代程序员/项目经理开发之道送3本~

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师…

【广州华锐互动】VR高层小区安全疏散演练系统

在今天的高科技时代,虚拟现实(VR)技术已经被广泛应用到各个领域,包括教育和培训。由广州华锐互动定制开发的VR高层小区安全疏散演练系统,开始在房地产行业中崭露头角。这种系统通过模拟真实的紧急情况,帮助…

怎么使用动态代理IP提升网络安全,动态代理IP有哪些好处呢?

目录 一、什么是动态代理IP 二、动态代理IP的优势 三、动态代理IP的代码实现 1. 安装依赖库 2. 获取代理IP 3. 使用代理IP请求目标网站 4. 动态更换代理IP 五、总结 一、什么是动态代理IP 动态代理IP是指在网络通信过程中,代理服务器不是固定IP地址&#x…

Vue3 Element-UI中使用ECharts(前端数据展示开发)

前端数据展示(数据可视化、数据大屏等)可使用的工具比较多,很多第三方都提供了在线平台,比如阿里云,只需数据接口,在线配置一下界面即可使用。 阿里云的使用:利用阿里云物联网平台(I…

记一个JSON返回数据的bug

记一个JSON返回数据的bug:‘Object of type int64 is not JSON serializable’ 我在打包数组进行json数据返回时,有一个参数是numpy数组里计算出来的,类型为int64,直接进行json打包会报错 提示(‘Object of type int64 is not JSON serializa…

【解决】运行vue项目,启动报错 in ./node_modules/@intlify/core-base/dist/core-base.cjs

我的处理方式: 一开始查了好多方法,删除node_modules,重新安装,切换node版本等,但是发现并没有用 之后来发现是安装依赖包的时候有些包安装失败导致的,只要有针对性的重新安装依赖就可以了 例如: in ./n…

C++中常见的头文件

在C中&#xff0c;头文件被广泛使用&#xff0c;用于包含函数声明、常量定义、类定义等。一般情况下&#xff0c;头文件包含在源文件的开头部分&#xff0c;这样源文件就可以访问头文件中定义的内容。 以下是一些常见的C头文件及其功能&#xff1a; <iostream>&#xf…

遇到工厂索赔你是一竿子处理方式吗?

最近听到一个博主说关于客户索赔的事情&#xff0c;说是自己以前的处理方式要么就是将事情推给工厂&#xff0c;以工厂的态度为原则&#xff0c;工厂赔付给我们&#xff0c;然后我们就同意赔付给客户。如果工厂敷衍我们&#xff0c;那么我们就敷衍客户&#xff0c;这样最起码能…

WPS、Excel表格增加一列,序列1到任意大小 / 填充某个范围的数字到列

Excel添加一列递增的数字方法有如下&#xff1a; 一、最常用的&#xff0c;使用鼠标放到右下角下拉增加 1、选中起始框的右下角&#xff0c;直到显示黑色实心十字 2、一直向下拖动 3、成功 这种填充方式是最常用的&#xff0c;100以内都可以轻松瞬间完成 1~100填充 但是如果…

oracle 表空间详解以及配置操作

Oracle 数据库是由若干个表空间构成的。任何数据库对象在存储时都必须存储在某个 表空间中。表空间对应于若干个数据文件&#xff0c;即表空间是由一个或多个数据文件构成的。 1、常用表空间&#xff1a; 系统表空间 (system tablespace) 是每个 Oracle 数据库都必须具备的。…