正向代理与反向代理的区别     

虽然正向代理和反向代理都涉及代理服务器接收客户端请求并向服务端转发请求,但它们之间存在一些关键的区别:

正向代理:


        在正向代理中,代理服务器代表客户端向服务器发送请求,并将服务器端响应返回给客户端。
客户端需要配置请求发送至代理服务器,并且服务器不会直接知道客户端的真实 IP 地址,只能看到代理服务器的 IP 地址。
正向代理通常用于绕过网络访问限制、保护客户端隐私、实现匿名访问等场景,例如访问被封锁的网站或保护内部网络安全访问外部网络,常见的有路由器、防火墙等。


反向代理:


        在反向代理中,代理服务器代表服务器接收客户端请求,并将请求转发给实际提供服务的服务器。代理服务器接收来自客户端的请求,并决定将请求转发给哪个后端服务器。
客户端只知道代理服务器的 IP 地址,不知道提供服务的真实服务器。
反向代理通常用于负载均衡、缓存加速、安全策略、SSL 终结等场景,可以提高网站的性能、可用性和安全性。
总的来说,正向代理是客户端选择性使用的代理服务器,而反向代理是提供服务的服务器端使用的代理服务器。区别主要在于代理服务器代表谁和谁向谁转发请求。

反向代理配置案例:

1、创建好一个访问页面

2、、配置反向代理

配置参数详解:

        proxy_pass 表示真是服务器的IP地址,也就是web服务器的IP地址;proxy_set_header Host $http_host; 表示重新定义转发给web服务器的请求头部,即在请求头部添加客户端真实地址;proxy_set_header X-Real-IP $remote_addr; 表示记录客户端真实IP地址proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 表示记录服务端反向代理服务器的ip地址proxy_connect_timeout 表示反向代理服务器对web服务器发起TCP三次握手的连接超时时间; proxy_send_timeout 表示web服务器给反向代理服务器返回资源过程中的超时时间proxy_read_timeout 表示TCP长连接的超时时间proxy_buffering 表示开启缓存功能proxy_buffer_size 表示存放响应头部的缓冲区proxy_buffers 表示内容缓冲区大小proxy_busy_buffers_size 表示用于向客户端发送资源的缓冲区,反向代理服务器会划分出一部分用于发送资源的缓冲区;
#       proxy_max_temp_file_size 256;表示用于存储请求头部的缓冲区,反向代理服务器会将超大的请求头部在缓冲区内存储成文件。

proxy_set_header 都是关于修改请求配置。而示例中的配置表示,反向代理服务器将自身ip地址与客户端的真实IP地址一同添加到请求头部,,再转发给web服务器。

注意:nginx配置反向代理服务器之后,nginx不在提供web功能。

测试:通过访问反向代理服务器IP来访问web网站。

上图显示成功通过反向代理服务器IP访问web网站,说明反向代理配置已经生效。

        查看web服务器中的访问日志,IP地址192.168.40.188在访问日志中表示客户端的IP地址。在访问日志的结尾比平常多一个IP地址,这就是真实客户端的IP地址,说明IP地址192.168.40.188是一个代理服务器IP地址。之前所以客户端真实地址在访问日志中出现,是因为之前对请求头部信息的修改配置生效,nginx将代理ip地址与客户端的真实IP地址都写到了请求头部中。web服务器收到带有客户端的真实ip地址的请求信息,就将客户端的真实IP地址与代理IP地址一同写入访问日志。

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

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

相关文章

ctfshow-web入门-php特性(web104-web108)

目录 1、web104 2、web105 3、web106 4、web107 5、web108 1、web104 需要传入的 v1 和 v2 进行 sha1 加密后相等。 解法1: 这里都没有判断 v1 和 v2 是否相等,我们直接传入同样的内容加密后肯定也一样。 ?v21 post: v11 拿到 flag…

SQL 多变关联使用子查询去重

不去重状态 select a.*,b.recon_amt from free_settlement_first aleft join free_settlement_second b on a.settlement_first_id b.settlement_first_id 有2条数据出现了重复 使用子查询去重 select a.*,b.recon_amt from free_settlement_first aleft join free_settlem…

Vue 最新动态!!!

大家好,我是CodeQi! 一位热衷于技术分享的码仔。 当Vue 3.4在六个月前发布时,整个前端开发社区都为之振奋。这次更新不仅带来了许多新特性,还解决了许多开发过程中遇到的痛点。 然而,时间飞逝,随着我在项目中不断应用这些新特性,逐渐积累了很多宝贵的经验和心得。 今…

一篇学通Axios

Axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 node.js 环境。它提供了一种简单易用的方式来发送 HTTP 请求,并支持诸如请求和响应拦截、转换数据、取消请求以及自动转换 JSON 数据等功能。 Axios 名字的由来 Axios 的名字来源于希腊神话中的…

Linux操作系统入门(适用java软件开发)

1.什么是操作系统? 操作系统(Operating System,简称 OS)是一种系统软件,它管理和控制计算机硬件与软件资源,为用户和应用程序提供一个接口和环境来访问计算机系统的服务和功能。操作系统的主要目标是提供一个方便、有…

探索性数据分析:使用Python与Pandas库实现数据洞察

探索性数据分析:使用Python与Pandas库实现数据洞察 引言 在当今数据驱动的时代,数据分析已成为决策制定、策略规划和业务优化的关键环节。无论是商业智能、金融分析还是市场研究,数据分析都扮演着至关重要的角色。Pandas库作为Python生态系统…

微积分-导数8(线性近似和微分)

线性近似 我们已经看到,在切点附近,曲线与其切线非常接近。事实上,通过放大可微函数图上的某一点,我们注意到图形看起来越来越像它的切线(见图)。这一观察是找到函数近似值的方法的基础。 这个想法是&am…

Java [ 进阶 ] JVM双亲委派机制✨

目录 ✨探索Java进阶 双亲委派机制✨ 理解 Java 的双亲委派机制 什么是双亲委派机制? 类加载器的层次结构 双亲委派机制的工作原理 优缺点分析 优点 缺点 一些面试题目: 什么是双亲委派机制? 双亲委派机制的工作流程是怎样的&am…

monodepth代码与原理对照实现

先实现demomonodepth/monodepth_simple.py at master mrharicot/monodepth GitHub import os os.environ[TF_CPP_MIN_LOG_LEVEL]0 这行代码是为tensorflow设置环境变量TF_CPP_MIN_LOG_LEVEL,用来控制tensorflow c后端输出的日志级别。0就是输出所有级别的日志信息。包括(调…

vue2学习笔记3 - 开发环境知识补充:live server简介

学习笔记1搭建开发环境中,在vs code里安装了live server插件,后续多次使用open with live server来打开浏览器,展示代码运行效果。本着知其然也要知其所以然的态度,稍稍了解了一下Live server。 什么是Live Server Live Server是…

探索Conda的依赖迷宫:包依赖树的构建与解析

探索Conda的依赖迷宫:包依赖树的构建与解析 引言 在复杂的软件项目中,依赖管理是确保软件正常运行的关键。Conda作为流行的Python包管理器,提供了强大的依赖树功能,帮助用户理解和管理包依赖关系。本文将详细介绍如何在Conda中使…

个性化你的编码世界:深度定制PyCharm主题与字体

个性化你的编码世界:深度定制PyCharm主题与字体 引言 在编码的旅途中,一个舒适且个性化的环境能够显著提升开发体验。PyCharm作为业界领先的集成开发环境(IDE),提供了丰富的定制选项,允许用户根据个人喜好…

力扣--20. 有效的括号

目录 题目 思路 注意 题目 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括…

DP讨论——适配器模式

学而时习之,温故而知新。 敌人出招(使用场景) 说是自己的程序对接第三方的库,但是自己的代码的接口设计完毕了,如何对接上? 你出招 适配器模式就是为此而生的——我觉得应该是该解决方法被命名为了适配…

滞后序列分析案例详解

一个半小时 超出30分钟 日期:2024-07-13 19:14:33 回放 摘要 Python在行为分析中的应用 主要讲述了如何使用Python处理序列数据,以及如何结合定性分析和定量分析来全面分析课程内容。讲者提到了一种叫做分层法的分类方法,该方法使用了布鲁…

ArcGIS Pro SDK (九)几何 2 坐标

ArcGIS Pro SDK (九)几何 2 坐标 文章目录 ArcGIS Pro SDK (九)几何 2 坐标1 矢量极坐标2 获取矢量倾角3 获取矢量方位角4 向量运算5 2D 矢量操作6 生成器 环境:Visual Studio 2022 .NET6 ArcGIS Pro SDK 3.0 1 矢量…

知识图谱数据库基本知识

文章目录 知识图谱数据模型知识图谱查询语言随着知识图谱规模的日益增长,数据管理愈加重要。一方面,以文件形式保存的知识图谱显然无法满足用户的查询、检索、推理、分析及各种应用需求;另一方面,传统数据库的关系模型与知识图谱的图模型之间存在显著差异,关系数据库无法有…

ctfshow-web入门-php特性(web96-web99)

目录 1、web96 2、web97 3、web98 4、web99 1、web96 试了下通配、转义、拼接、大小写都不行 这里使用绝对路径或者当前路径绕过: ?u./flag.php ?u/var/www/html/flag.php 还可以使用 php 伪协议: ?uphp://filter/resourceflag.php 2、web97 关…

数据结构(Java):力扣Stack集合OJ题

1、括号匹配问题 . - 力扣(LeetCode) 1.1 思路分析 根据栈的先进后出原则,我们可以这样解决问题: 遍历字符串,遇见左括号就将左括号push入栈;遇见右括号就pop出栈,将出栈的元素和该右括号比较…

pyparsing开启调试

在要匹配的表达后添加set_debug