正向代理、反向代理

news2024/9/21 15:30:07

代理作为客户端和服务器的中间层,按照不同的维度可以分为不同的类型。

一种常见的划分方式是将代理分为正向代理(forward proxy)与反向代理(reverse proxy)。

根据实现代理的方式可以分为 HTTP 隧道代理、MITM 代理、透明代理。

根据代理协议的类型,又可以分为 HTTP 代理、HTTPS 代理、SOCKS 代理、TCP 代理等。

1. 正向代理

当我们谈论代理服务器时,通常指的就是正向代理。正向代理会向一个客户端或一组客户端提供代理服务。通常,这些客户端属于同一个内部网络。当客户端尝试访问外部服务器时,请求必须首先通过正向代理。

可是我们为什么需要这多余的中间层呢?因为正向代理能够监控每一个请求与回复,鉴权、控制访问权限并隐藏客户端实际地址。隐藏了客户端的真实地址之后,正向代理可以绕过一些机构的网络限制,这样一些互联网用户就实现了匿名性。

forwared

2. 反向代理

与正向代理不同的是,反向代理位于服务器的前方,客户端不能直接与服务器进行通信,需要通过反向代理。我们比较熟悉的 Nginx 一般就是用于实现反向代理的。

1.客户端(User):一个想要访问网站的用户。
2.反向代理服务器:一个为多个后端服务器进行统一出入访问和请求分发的服务器。
3.后端服务器:实际处理请求并返回数据的服务器。
在这个场景中,用户通过互联网访问一个网站的URL,如用户在浏览器输入 http://www.example.com
4.用户的请求首先到达反向代理服务器。这个服务器对外是一个单一的入口点。
5.反向代理服务器根据配置的规则(例如请求的URL或内容类型)以及负载均衡策略将请求转发到一个或多个后端服务器 上。
6.一个或多个后端服务器处理请求,并生成响应。
7.响应回到反向代理服务器,再由反向代理服务器分发响应回到原始请求的客户端
在这里插入图片描述

可以认为:正向代理不知道客户端是谁,反向代理不知道服务器端是谁

反向代理可以带来下面几个好处。

  • 负载均衡

对于大型分布式系统来说,反向代理可以提供一种负载均衡解决方案,在不同服务器之间平均分配传入流量,防止单个服务器过载。如果某台服务器完全无法运转,可以将流量转发到其他服务器。

  • 防范攻击

配备反向代理后,服务器无需暴露真实的 IP 地址,这就让攻击者难以进行针对性攻击(例如 DDoS 攻击),同时,反向代理通常还拥有更高的安全性和更多抵御网络攻击的资源。

  • 缓存

代理服务器可以缓存(或临时保存)服务器的响应数据(即使服务器在千里之外),大大加快请求的速度。

  • SSL 加密解密

反向代理可以对客户端发出的 HTTPS 请求进行解密,对服务器发出的 HTTP 请求进行加密,从而节约目标服务器资源。

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

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

相关文章

ubuntu安装dnsmasq 做dns服务器

本文介绍在ubuntn22.04上安装dnsmasq用做自定义域名服务器,可以在公网上使用。 目标 准备两台不是同一个局域网内的服务器,其中A服务器是ubuntu22.04。在A上安装dnsmasq dns服务器,配置自定义域名,然后在B服务器上配置A做为dns服…

使用session实现单用户多端登录限制

基本流程: 首先获得当前浏览器访问服务器的session,然后根据用户的信息(如id等)在redis中查找,如果找到,并且和查找对应的session不同,则可以判断已经有其他设备登录过了,这个时候就…

Andorid 如何查看某个.so库的依赖

Android 手机中,如何查看其中某个.so 库依赖了其它哪些库?1.方法:使用android 手机中的readelf 命令.。2. 操作步骤:如查看libdolphin.so 的的依赖。 (1)adb shell 进入手机,进入libdolphin.so…

C++学习笔记----6、内存管理(一)---- 使用动态内存(2)

2.2、我的好朋友malloc怎么样了? 如果你是一个C程序员,对啦,我就是,你可能会想,malloc()函数怎么样了。在C语言中,malloc()用于分配一定数量的内存字节。总的来讲,使用malloc()简单直接。在C中m…

传统CV算法——图像特征算法之角点检测算法

文章目录 2. 角点检测2.1 角点概述2.1.1 概念2.1.2 角点的特点2.1.3 角点的检测2.1.4 角点的应用 2.2 角点检测算法2.2.1 Harris 角点2.2.1.1 Harris 角点介绍2.2.1.2 Harris计算流程1. 图像梯度2. 结构张量3. Harris响应函数4. 非极大值抑制5. 阈值化 2.2.1.3 Harris性质1. 旋…

《PCI Express体系结构导读》随记 —— 第II篇 第7章 PCIe总线的数据链路层与物理层(4)

接前一篇文章:《PCI Express体系结构导读》随记 —— 第II篇 第7章 PCIe总线的数据链路层与物理层(3) 7.1 数据链路层的组成结构 7.1.1 数据链路层的状态 数据链路层需要通过物理层监控PCIe链路的状态,并维护数据链路层的“控制与…

厂房电气火灾现场勘验要点

0前言 随着我国社会的发展,电气化水平提升,但随之而来的是频繁的电气火灾事故,对生活和生产造成重大危害。电气火灾是最常见的火灾类型,通常由电路短路、电压过高、电阻过大或电路超负荷引起,这些因素都可能导致火花并…

电脑怎么录屏?探索电脑录屏工具,三款高效工具推荐及使用指南

在数字化时代,电脑录屏已成为日常工作和学习中不可或缺的一部分。无论是制作教程、记录会议还是捕捉游戏精彩瞬间,一个好的录屏工具都能让这一切变得简单高效。今天,我们将为您介绍三款备受推崇的录屏软件:Windows自带的步骤记录器…

面向对象程序设计之链表 list 的简析(C++)

简介:链表是一个双向的结构,与string与vector不同的是他不支持[]访问,因为链表是由一个节点一个节点连接而成的,并不连续。我们可以在常数量级内对于链表进行插入与删除数据 1.构造函数 我们在cplusplus.com中可以查到链表总共有四…

无人机遥控器的材料组成!!!

1. 外壳 材料:遥控器外壳通常采用高强度塑料(如ABS、PC等)或轻质金属(如铝合金)制成。这些材料具有良好的抗冲击性、耐磨性和一定的耐腐蚀性,能够保护内部电子元件免受外界环境的影响。 特点:…

智能优化算法-秃鹰优化算法(BES)(附源码)

目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1.内容介绍: 秃鹰搜索算法‌,它是一种基于自然界中秃鹰觅食行为启发的优化算法,旨在解决优化问题。该算法模仿了秃鹰在寻找猎物时的策略,结合了随机搜索和逐步优化的特点&#…

AGI系列(9)手把手带你玩转 Coze 画板节点

本文以智能体“日签卡片生成器”的制作来阐述 Coze 画板节点的使用方法。 效果演示 核心流程 日签卡片生成器工作流整体分为两部分: 工作流:其核心流程为通过用户输入的主题词生成卡片的标题、内容 图像流:通过LLM输出的内容在图像流完成卡…

【C++ Primer Plus习题】9.3

问题: 解答: #include <iostream> using namespace std;struct chaff {char dross[20];int slag; };int set_chaff(chaff& f, char* c, int n) {if (strlen(c) > 0){strcpy_s(f.dross, c);f.slag n;return 1;}return 0;}void show_cahff(const chaff& f) {c…

rabbitmq高可用集群搭建

需求分析基本情况 在进行RabbitMQ搭建时&#xff0c;我们基于现有的连接数据和业务需求进行了深入分析。目前的统计数据显示&#xff0c;连接数为631&#xff0c;队列数为80418。为了确保业务需求的顺利满足&#xff0c;我们需要在云产品和自建RabbitMQ消息队列服务之间做出选…

最新软件测试面试题,常见面试题及答案汇总,不怕拿不到offer

面试题包括以下十六个模块&#xff1a;软件测试基础&#xff0c;liunx基础&#xff0c;MySQL基础&#xff0c;web测试&#xff0c;APP测试&#xff0c;性能测试&#xff0c;selenium&#xff0c;Python基础&#xff0c;接口测试&#xff0c;lordrunner&#xff0c;计算机网络&a…

chapter11-枚举和注解——(注解)——day14

目录 433-override注解 434-Deprecated注解 435-SupressWarnings注解 436-JDK的元注解 433-override注解 434-Deprecated注解 435-SupressWarnings注解 436-JDK的元注解

华为云征文 | 华为云Flexus云服务器X实例之Docker环境下部署JmalCloud个人网盘

华为云征文 | 华为云Flexus云服务器X实例之Docker环境下部署JmalCloud个人网盘 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、JmalCloud介绍2.1 JmalCloud简介2.2 JmalCloud优点2.3 JmalCloud使…

Android Camera系列(一):SurfaceView+Camera

心行慈善&#xff0c;何需努力看经—《西游记》 本系列主要讲述Android开发中Camera的相关操作、预览方式、视频录制等&#xff0c;项目结构代码耦合性低&#xff0c;旨在帮助大家能从中有所收获&#xff08;方便copy :&#xff09; &#xff09;&#xff0c;对于个人来说也是一…

【Next】2. 项目构建

打开 Next.js 的官方文档&#xff1a;https://nextjs.org/docs/getting-started/installation&#xff08;国内文档不够新&#xff09; Next.js 版本 14.2 &#xff0c; Node.js 的版本要求必须 > 18.18。 Next 有两种开发模式&#xff0c;下面讲新的 APP Router。 创建项…

VS2022 C++ 控制台中文乱码解决方案

最近写读文件的代码时&#xff0c;遇到了VS控制台读取中文时出现乱码&#xff0c;看了网上主要有两种方法 &#xff1a; 1、在VS菜单栏里点击"文件"选项&#xff0c;然后选择"高级保存选项"来设置文件格式&#xff0c;但是我的文件选项里没有"高级保存…