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=[...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...

零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...

佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...