nginx的正向与反向代理

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

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

正向代理:


        在正向代理中,代理服务器代表客户端向服务器发送请求,并将服务器端响应返回给客户端。
客户端需要配置请求发送至代理服务器,并且服务器不会直接知道客户端的真实 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应该是192.168.40.186的)

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

怎么调整硬盘分区?让电脑运行更加高效!

硬盘分区是电脑存储管理的重要组成部分,合理的分区设置不仅能提高数据管理的效率,还能在一定程度上提升系统的运行性能。然而,随着使用需求的变化,我们可能需要对已有的硬盘分区进行调整。那么,我们该怎么调整硬盘分区…

PostgreSQL的学习心得和知识总结(一百四十八)|查看 PostgreSQL 17 中的新内置排序规则提供程序

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《PostgreSQL数据库内核分析》 2、参考书籍:《数据库事务处理的艺术:事务管理与并发控制》 3、PostgreSQL数据库仓库…

数码暴龙机(电波暴龙机)彩色复刻版!!| 使用Python、PySide6、pixilart自制windows桌面宠物

一、前言 数码暴龙机(电波暴龙机)是万代公司发售的一系列与《数码兽》系列相关的液晶玩具商品。这些产品融合了养成和对战元素,为玩家提供了一种虚拟养成和战斗的娱乐体验。也是很多人的童年回忆。最近在B站刷到讲解暴龙通关的教程和视频&…

ROS2 + 科大讯飞 初步实现机器人语音控制

环境配置: 电脑端: ubuntu22.04实体机作为上位机 ROS版本:ros2-humble 实体机器人: STM32 思岚A1激光雷达 科大讯飞语音SDK 讯飞开放平台-以语音交互为核心的人工智能开放平台 实现步骤: 1. 下载和处理科大讯飞语音模…

SQL Server的视图

SQL Server的视图 一、基础 SQL 视图(Views)是一种虚拟表,是基于 SQL 查询结果生成的。这些虚拟表可以包含来自一个或多个表的数据,并且可以像表一样查询;视图是一个表中的数据经过某种筛选后的显示方式,或…

Cornerstone3D导致浏览器崩溃的踩坑记录

WebGL: CONTEXT_LOST_WEBGL: loseContext: context lost ⛳️ 问题描述 在使用vue3vite重构Cornerstone相关项目后,在Mac本地运行良好,但是部署测试环境后,在window系统的Chrome浏览器中切换页面会导致页面崩溃。查看Chrome的任务管理器&am…

对话天润融通首席科学家:大模型的首要任务是为客户创造商业价值

2023年,AI大模型开启了企业数智化转型的新篇章。 不过前沿技术固然重要,但在增长见顶的存量背景下,先进技术带来的实用价值也尤为关键。 正如天润融通首席科学家田凤占所说:“现阶段最重要的是让大模型尽快和企业的业务相结合&a…

【Linux】进程间通信——消息队列和信号量

目录 消息队列(message queue) 信号量(Semaphore) system V版本的进程间通信方式有三种:共享内存,消息队列和信号量。之前我们已经说了共享内存,那么我们来看一下消息队列和信号量以及它们之间…

【嵌入式Linux】<总览> 网络编程(更新中)

文章目录 前言 一、网络知识概述 1. 网路结构分层 2. socket 3. IP地址 4. 端口号 5. 字节序 二、网络编程常用API 1. socket函数 2. bind函数 3. listen函数 4. accept函数 5. connect函数 6. read和recv函数 7. write和send函数 三、TCP编程 1. TCP介绍 2.…

新版本WPS不登录无法编辑的解决办法

原因分析:新版本的WPS因加入多种在线功能,建议登录账号获得更加体验 解决办法:首选第一种修改注册表后重启WPS,第二种仅作为临时满足工作需求,过一段时间会自动失效 方法一:键盘同时按下WINR键,…

【Python】基础语法(函数、列表和元组、字典、文件)

。一、函数 1、函数是什么 编程中的函数和数学中的函数有一定的相似之处。 数学上的函数,比如 y sin x,x 取不同的值,y 就会得到不同的结果。 编程中的函数是一段可以被重复使用的代码片段。 (1)求数列的和&…

MySQL索引特性(上)

目录 索引的重要 案例 认识磁盘 MySQL与存储 先来研究一下磁盘 扇区 定位扇区 结论 磁盘随机访问与连续访问 MySQL与磁盘交互基本单位 建立共识 索引的理解 建立测试表 插入多条记录 局部性原理 所有的MySQL的操作(增删查改)全部都是在MySQL当中的内存中进行的&am…

网友提问:HTML CSS JS很低级吗?

这话听起来就像有人在说披萨只是面团加奶酪,完全忽略了上面的美味配料和烘烤的艺术啊!HTML、CSS、JS这三位可是前端开发的铁三角,它们一点都不“低级”,反而相当关键。 HTML就像是房子的骨架,没有它,网页就…

【iOS】——MRC

一、引用计数 内存管理的核心是引用计数器,用一个整数来表示对象被引用的次数,系统需要根据引用计数器来判断对象是否需要被回收。 在每次 RunLoop 迭代结束后,都会检查对象的引用计数器,如果引用计数器等于 0,则说明…

单链表算法 - 链表分割

链表分割_牛客题霸_牛客网现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的。题目来自【牛客题霸】https://www.nowcoder.com/practice/0e27e0b064de4eacac178676ef9c9d70思路: 代码: /* struct ListNode {int val;struct List…

烧掉一个亿就为造好一把椅子,西昊如何策划人体工学椅极致产品力

2011年到2015年这4年期间,功能单一,价值雷同的椅子市场趋于饱和,竞争的白热化和同质化带来了全行业的价格战,彼时西昊的经营陷入巨大的困境,所有的产品和钱都变成成库存,现金流几乎枯竭。因此,西…

文心一言《使用手册》,文心一言怎么用?

一、认识文心一言 (一)什么是文心一言 文心一言是百度研发的 人工智能大语言模型产品,能够通过上一句话,预测生成下一段话。 任何人都可以通过输入【指令】和文心一言进行对话互动、提出问题或要求,让文心一言高效地…

智能家居产品公司网站源码,自适应布局设计,带完整演示数据

适合各类智能家居电子产品使用的网站源码,深色大气设计,自适应布局设计,pc手机均可完美适配,带完整演示数据。 独家原创资源。源码是asp开发的,数据库是access,主流的虚拟主机空间都支持asp,直…

<Rust><GUI>rust语言GUI库tauri体验:前、后端结合创建一个窗口并修改其样式

前言 本文是rust语言下的GUI库:tauri来创建一个窗口的简单演示,主要说明一下,使用tauri这个库如何创建GUI以及如何添加部件、如何编写逻辑、如何修改风格等,所以,这也是一个专栏,将包括tauri库的多个方面。…

面对人工智能发展的伦理挑战:应对策略与未来方向

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…