Nginx 代理
目录
正向代理
反向代理
负载均衡
负载均衡的工作原理
优势和好处
算法和策略
应用领域
Nginx 的反向代理
应用场景
在网络通信中,代理服务器扮演着重要的角色,其中正向代理和反向代理是两种常见的代理服务器模式。它们在网络安全、性能优化和隐私保护方面发挥着不同的作用。
正向代理
正向代理是一种代理服务器,代表客户端与目标服务器进行通信。其工作原理如下:
- 客户端向正向代理服务器发送请求。
- 正向代理服务器将请求转发给目标服务器。
- 目标服务器将响应发送给代理服务器。
- 代理服务器再将响应转发给客户端。
正向代理的主要特点包括:
- 用于隐藏客户端的真实IP地址,提高隐私保护。
- 可以绕过访问限制,例如访问受限制的网站。
- 常用于企业内部网络,以控制员工对外部资源的访问。
现实生活中客户端无法直接向服务端发起请求的时候 ,我们就需要代理服务器。正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径(例如:教学环境时,同学们使用的计算机就不能访问百度,只能通过老师的计算机作为代理服务器来获取信息)。正向代理还可以使用缓冲特性(由mod_cache提供)减少网络使用率。代理可以实现客户端与原服务器之间的通信,Nginx也可以实现相应的代理服务。
正向代理针对的是客户端,架构如下:客户端与代理服务器属于同一个LAN,对互联网透明。
反向代理
反向代理是一种代理服务器,代表目标服务器与客户端进行通信。其工作原理如下:
- 客户端发送请求到反向代理服务器。
- 反向代理服务器根据请求将其转发到一个或多个目标服务器。
- 目标服务器处理请求并将响应发送给代理服务器。
- 代理服务器再将响应传递给客户端。
反向代理的主要特点包括:
- 用于负载均衡,将客户端请求分发到多个目标服务器,以提高性能和可用性。
- 提供安全性,客户端不直接与目标服务器通信,减少潜在攻击风险。
- 常用于大型网站和应用程序,以分发流量和提供缓存服务。
反向代理Reverse Proxy方式是以代理服务器来接收internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。正向代理是针对你的客户端,而反向代理是针对服务器的。反向代理对外都是透明的,访问者者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。
【1】保证内网的安全,可以使用反向代理提供WAF(Web应用防护系统)功能,阻止web攻击大型网站,通常将反向代理作为公网访问地址,web服务器是内网。web服务器与代理服务器属于同一个LAN,对客户端透明。
负载均衡
负载均衡,通过反向代理服务器来优化网站的负载
负载均衡是一种网络和服务器管理技术,旨在分发网络流量和请求到多个服务器上,以确保高可用性、提高性能和避免单一服务器负载过重。以下是有关负载均衡的介绍:
负载均衡的工作原理
负载均衡工作原理如下:
- 客户端发送请求到负载均衡设备(通常是一个负载均衡器或软件)。
- 负载均衡设备根据特定算法(如轮询、最小连接数、最少响应时间等)选择一个后端服务器。
- 请求被转发到选定的服务器上。
- 服务器处理请求并将响应返回给负载均衡设备。
- 负载均衡设备将响应传递给客户端。
优势和好处
负载均衡提供了多方面的好处,包括:
- 高可用性:通过将流量分发到多个服务器,即使某个服务器出现故障,系统仍然可用,避免了单点故障。
- 性能优化:负载均衡确保请求平均分布到后端服务器,提高了响应时间和处理能力,减轻了服务器的负载。
- 扩展性:可以随时添加或移除服务器,以应对不断增长的流量需求,而无需中断服务。
- 安全性:负载均衡器可以提供一层防御,以保护服务器免受某些网络攻击,如DDoS攻击。
- 简化管理:通过统一管理多个服务器,降低了系统管理的复杂性。
算法和策略
负载均衡使用不同的算法和策略来选择后端服务器,其中一些常见的包括:
- 轮询(Round Robin):按顺序依次分配请求给每个服务器,均匀分配负载。
- 最小连接数:选择当前连接数最少的服务器,以确保每个服务器的负载相对平衡。
- 最少响应时间:选择响应时间最短的服务器,以提供最佳性能。
- IP散列(IP Hashing):根据客户端IP地址的散列值将请求路由到特定服务器,确保相同客户端的请求总是到达同一服务器。
应用领域
负载均衡广泛应用于以下领域:
- 大型网站和应用程序,以确保高可用性和性能。
- 云计算环境,以平衡虚拟机或容器之间的负载。
- 数据中心网络,以管理流量分发到服务器集群。
- 高度可扩展的应用程序,如社交媒体平台和在线游戏。
总之,负载均衡是一项关键的技术,可以帮助组织实现高效的网络流量管理,提高性能和可用性,并应对不断增长的网络流量需求。
Nginx 的反向代理
Nginx
通过配置conf/nginx.conf
文件中的proxy_pass
属性,实现代理站点的配置
这段代码定义了一个Nginx服务器配置。该服务器监听80端口,当接收到来自 xxx.com域名的请求时,会在指定的目录/data/www/paccount
中查找网页文件(index.html、index.htm、index.php),如果找不到,会返回index.html文件。同时,对于/paccount
路径的请求,会将请求转发到http://xxx.xxx.xxx.xxx:8088地址的服务器上,并传递一些HTTP头信息,比如Host
、REMOTE-HOST
、X-Real-IP
和X-Forwarded-For
。
-
proxy_set_header Host $http_host;
: 将客户端请求的Host头信息传递给代理服务器,用于指定原始请求的目标主机。 -
proxy_set_header REMOTE-HOST $remote_addr;
: 将客户端的IP地址传递给代理服务器,通过$remote_addr
获取。 -
proxy_set_header X-Real-IP $remote_addr;
: 同样将客户端的真实IP地址传递给代理服务器,使用$remote_addr
获取。 -
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
: 将客户端的原始IP地址加入X-Forwarded-For头信息中,用于追踪请求的原始来源。 -
proxy_pass
http://xxx.xxx.xxx.xxx:8088: 将请求代理到指定的目标服务器,这里是http://xxx.xxx.xxx.xxx:8088
server{listen 80;server_name xxx.com;index index.html index.htm index.php;root /data/www/paccount;try_files $uri $uri/ /index.html;location /paccount{proxy_set_header Host $http_host;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://xxx.xxx.xxx.xxx:8088;}}
应用场景
正向代理和反向代理在各种应用中都有广泛的用途:
- 正向代理可用于绕过地理限制,访问受限制的内容,同时保护用户隐私。
- 反向代理可用于负载均衡,确保服务器的稳定性和可用性,以及提供安全性。
- 它们都是网络安全的一部分,可用于防止DDoS攻击、WAF(Web应用防火墙)和SSL终止等。
总之,正向代理和反向代理是网络通信中的重要组成部分,它们分别代表了代理服务器在不同方向上的应用。了解它们的工作原理和应用场景有助于更好地管理网络流量、提高性能和增强安全性
相关文章:

Nginx 代理
目录 正向代理 反向代理 负载均衡 负载均衡的工作原理 优势和好处 算法和策略 应用领域 Nginx 的反向代理 应用场景 在网络通信中,代理服务器扮演着重要的角色,其中正向代理和反向代理是两种常见的代理服务器模式。它们在网络安全、性能优化和…...

uniapp(uncloud) 使用生态开发接口详情4(wangeditor 富文本, 云对象, postman 网络请求)
wangeditor 官网: https://www.wangeditor.com/v4/pages/01-%E5%BC%80%E5%A7%8B%E4%BD%BF%E7%94%A8/01-%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8.html 这里用vue2版本,用wangeditor 4 终端命令: npm i wangeditor --save 开始使用 在项目pages > sy_news > add.vue 页面中…...

Halcon 中查看算子和函数的执行时间
1、在Halcol主窗口的底栏中的第一个图标显示算子或函数的执行时间,如下图: 2、在Halcon的菜单栏中选择【窗口】,在下拉框中选择【打开输出控制台】,进行查看算子或函数的执行时间,如下图:...

Python中的With ...as... 作用
Python中的with … as …作用: 1、通过with语句可以得到一个上下文管理器 2、执行对象 3、加载__enter__方法 4、加载__exit__方法 5、执行__enter__方法 6、as 可以得到enter的返回值 7、拿到对象执行相关操作 8、执行完了之后调用__exit__方法 9、如果遇到异常&a…...
腾讯云国际站服务器如何打开音频设备?
在使用腾讯云服务器进行音频处理或直播等活动时,或许需求翻开服务器的音频设备。本文将详细介绍如安在腾讯云服务器上翻开音频设备。 在腾讯云服务器上翻开音频设备的过程如下: 登录腾讯云服务器办理控制台 1.首先,需求登录腾讯云服务器的办理…...
k8s day05
上周内容回顾: - 基于kubeadm部署k8s集群 ***** - Pod的基础管理 ***** 是K8S集群中最小的部署单元。 ---> 网络基础容器(pause:v3.1),提供网络 ---> 初始化容器(initContainer),做初始化的准备工作…...

微信小程序里报名链接怎么做
微信小程序是一种便捷、实用的应用程序,它依托于微信平台,无需下载安装即可使用。在小程序中,我们可以制作报名链接,以便用户直接在微信中进行报名操作,提高服务效率。下面我们将探讨如何制作微信小程序里的报名链接为…...
Kotlin中的逻辑运算符
在Kotlin中,逻辑运算符用于对布尔值进行逻辑运算。Kotlin提供了三个逻辑运算符:与运算(&&)、或运算(||)和非运算(!)。下面对这些逻辑运算符进行详细介绍,并提供示…...

启智平台新建一个调试任务后,如何配环境,并提交镜像
1. 选一个基础版的镜像,我选的是第一个 2. 点击“调试”,进入调试页面 3. 输入bash,再输入pip list 就可以看到镜像自带的conda中已经安装的包 !注意,这里一进入到调试页面,不要输入su,一定要…...

模糊测试面面观 | 车联网场景模糊测试解决方案
随着国际国内汽车信息安全标准的出台、用户安全意识的不断提高以及针对智能网联汽车安全攻击的不断规模化复杂化和深入,智能网联汽车系统及车联网安全形势严峻。 然而大部分车型在信息安全防护方面水平偏低,车内相关的联网部件及控制部件防护可靠性不高&…...

超声波清洗机有没有平价又好用的推荐、平价好用超声波清洗机总结
超声波清洗机以其高效、环保、节能等优点在日常生活中得到了广泛应用。无论是在珠宝首饰、眼镜等小物品的清洁方面,还是在医疗领域的清洁消毒方面,超声波清洗机都发挥着不可替代的作用。在购买超声波清洗机时,需要根据自己的具体需求选择合适…...

工控机通过485modbus转profinet网关与温度智能表通讯配置案例
在这个案例中,通过485modbus转profinet网关(XD-MDPN100)可以实现工控机与温度智能表之间的双向通信。工控机通过modbus协议将温度数据发送到网关,网关将数据转换为profinet协议后发送给温度智能表进行显示和控制。 通过485modbus转…...

【网络】计算机网络基础概念入门
🍁 博主 "开着拖拉机回家"带您 Go to New World.✨🍁 🦄 个人主页——🎐个人主页 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁&#…...
Node.js的crypto模块 加密
Node.js的crypto模块提供了许多加密和解密功能,包括对称加密、非对称加密、哈希函数等。在本篇文章中,我们将详细介绍Node.js的crypto模块的API、代码注释和举例。 加密和解密 对称加密 对称加密算法使用相同的密钥进行加密和解密,例如AES…...
react+hooks使用
参考视频:https://www.bilibili.com/video/BV1ZB4y1Z7o8/?p3&spm_id_frompageDriver&vd_source5c584bd3b474d579d0bbbffdf0437c70 1.快速搭建开发环境 create-react-app是一个快速 创建react开发环境的工具,底层由webpack构建,封装…...
wsl2安装fsl
按照教程安装完毕之后,终端输入命令glxgears判断vcxsrv是否可用若有三个轮子即可用, 然后将三个齿轮关闭,并将vcxsrv挂起,使用Ubuntu终端输入 sudo gedit /etc/profile 打开写字板,(此时写字板是会出现在vc…...
mac电脑zsh: command not found: adb
“zsh: command not found: adb” 的解决方法: 前提 已经成功安装了 Android Studio. 打开 iTerm 终端依次输入下面命令: echo export ANDROID_HOME/Users/$USER/Library/Android/sdk >> ~/.zshrc echo export PATH${PATH}:$ANDROID_HOME/tool…...

GitHub下载太慢的解决方案
修改hosts文件: windows的hosts文件在 C:\Windows\System32\drivers\etc\hosts cmd管理员运行命令notepad C:\Windows\System32\drivers\etc\hosts 然后cmd命令重启网络ipconfig /flushdns windows修改hosts Ubuntu22.04修改hosts sudo vim /etc/hosts # This fil…...
英语生活常用词,柯桥成人零基础英语培训
Shopping mall 商场 - elevator 升降电梯 - men’s clothing department 男装部 - mannequin 人体模特 - fitting room 试衣间 - display counter 陈列柜 - women’s clothing department 女装部 - price tag 价标 - cosmetics department 化妆品专柜 - salesclerk 销售…...

【前端学习】—使用多种方式实现数组去重(六)
【前端学习】—使用多种方式实现数组去重(六) 一、数组常用的几个方法 //[1,2,3,4,2,1]//[{name:"caicai",age:"10"},{name:"zhangsan",age:"20"}]const array=[...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...

全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
深入理解Optional:处理空指针异常
1. 使用Optional处理可能为空的集合 在Java开发中,集合判空是一个常见但容易出错的场景。传统方式虽然可行,但存在一些潜在问题: // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...
32单片机——基本定时器
STM32F103有众多的定时器,其中包括2个基本定时器(TIM6和TIM7)、4个通用定时器(TIM2~TIM5)、2个高级控制定时器(TIM1和TIM8),这些定时器彼此完全独立,不共享任何资源 1、定…...

STM32标准库-ADC数模转换器
文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”:输入模块(GPIO、温度、V_REFINT)1.4.2 信号 “调度站”:多路开关1.4.3 信号 “加工厂”:ADC 转换器(规则组 注入…...
JavaScript 标签加载
目录 JavaScript 标签加载script 标签的 async 和 defer 属性,分别代表什么,有什么区别1. 普通 script 标签2. async 属性3. defer 属性4. type"module"5. 各种加载方式的对比6. 使用建议 JavaScript 标签加载 script 标签的 async 和 defer …...