【Linux】正/反向代理

🐼正向代理

什么是代理服务器?

代理服务器(Proxy Server)是一种位于客户端(如您的电脑或手机)和目标服务器(如网站或在线服务)之间的中间服务器。它充当"中介"的角色,转发客户端的请求,并返回服务器的响应。它本质上也是个服务器!

什么是正向代理

正向指的是靠近客户端,代表客户端向目标服务器发送请求。 正向代理服务器接收客户端的请

求, 然后将请求转发给目标服务器, 最后将目标服务器的响应返回给客户端。如图:

通过这种方式, 正向代理可以实现多种功能, 如提高访问速度、 隐藏客户端身份、 实施访问控制等。也就是我们内网的所有请求,都由正向代理服务器来帮我们请求,拿到结果后再返回给我们,真正做到了"足不出户"

✅正向代理的功能特点:

缓存功能: 正向代理服务器可以缓存经常访问的资源, 比如:在代理服务器中统计出这个局域网中经常访问的资源,然后我就访问目标服务器一次,并将这次资源进行缓存,之后我再也不去目标服务器请求了,当客户端再次请求这些资源时, 可以直接从缓存中获取, 提高访问速度。如果一些特殊的用途,比如一些国内不让访问的资源,我们是不是也可以增加到正向代理服务器中~

内容过滤: 由于是靠近客户端,正向代理有权利不让客户端进行非法访问操作,可以根据预设的规则对请求或响应进行过滤, 如屏蔽广告、阻止恶意网站等

访问控制: 通过正向代理, 可以实现对特定网站的访问控制, 如限制员工在工作时间访问娱乐网站

隐藏客户端身份: 正向代理可以隐藏客户端的真实 IP 地址, 保护客户端的隐私。

总之,正向代理其实就是在变相"保护"客户端


🐼反向代理

**反向代理靠近服务器端!变相"保护"服务器。**它是一种网络架构模式, 其作为 Web 服务器的前置服务器, 接收来自客户端的请求, 并将这些请求转发给后端服务器, 然后将后端服务器的响应返回给客户端。如图:

如上图所示,反向代理服务器会根据配置的规则将请求转发给后端的 Web服务器, 并将 Web 服务器的响应返回给客户端。

在这个过程中,客户端并不知道实际与哪个 Web 服务器进行了交互, 它只知道与反向代理服务器进行了通信 。这有什么好处?当服务器内部宕机,或者IP地址发生改变,也不会保留给客户端,对客户端完全"透明"

✅反向代理的功能特点:

负载均衡: 反向代理服务器可以根据配置的负载均衡策略, 将客户端的请求分发到多个后端服务器上, 以实现负载均衡。 这有助于提升网站的整体性能和响应速度,特别是在高并发场景下。

安全保护: 反向代理服务器可以隐藏后端 Web 服务器的真实 IP 地址, 降低其被直接攻击的风险。 同时, 它还可以配置防火墙、 访问控制列表(ACL) 等安全策略,对客户端的请求进行过滤和限制, 以保护后端服务器的安全。

缓存加速: 反向代理服务器可以缓存后端 Web 服务器的响应内容, 对于重复的请求,"热数据" , 它可以直接从缓存中返回响应, 而无需再次向后端服务器发起请求。 这可以大大减少后端服务器的负载, 提升网站的响应速度。实现动静分离: 将静态资源和动态资源分开处理,直接从反向代理服务器返回静态资源的响应,而无需再次向后端服务器发起请求

内容过滤和重写: 反向代理服务器可以根据配置的规则对客户端的请求进行过滤和重写, 例如添加或删除请求头、 修改请求路径等。 这有助于实现一些特定的业务需求, 如 URL 重写、 用户认证等。

并且像CDN这种就使用了反向代理的原理,像一些已经写好的前端框架它部署云服务器上,这些云服务器是靠近我们自已的服务器的,然后对外提供一个url供我们服务器去直接访问,这样就使得我们服务器不用再跑去很远访问了,就地就能访问。


**🐼**NAT 和代理服务器的区别

好像NAT和代理服务器有些相似之处,比如:都是收到客户端请求,然后自已负责帮忙转发,然后得到应答,再转给客户端。这个过程很像,我们来说说它们的区别:

从应用上讲, NAT 设备是网络基础设备之一, 解决的是 IP 不足的问题. 代理服务器则是更贴近具体应用, 比如通过代理服务器进行翻墙, 另外像迅游这样的加速器,也是使用代理服务器

从底层实现上讲, NAT 是工作在网络层, 直接对 IP 地址进行替换. 代理服务器往往工作在应用层

从使用范围上讲, NAT 一般在局域网的出口部署, 代理服务器可以在局域网做,也可以在广域网做, 也可以跨网

相关推荐
Lust Dusk5 分钟前
记一次Linux应急响应题目解析
linux·运维·服务器·网络·安全·网络安全
ShineWinsu39 分钟前
对于Linux:五种IO模型以及非阻塞IO的详细解析
linux·c++·面试·io·阻塞·非阻塞·fcntl
千千寰宇40 分钟前
[Linux/Ollama] Termux : 一款运行在 Android 平台上的开源终端模拟器与 Linux 环境应用、支持在手机上基于Ollama部署LLM
linux
凌肖战1 小时前
TCP网络通信中setsockopt()函数解决地址已占用问题
服务器·网络·tcp/ip
轻揉小乔 真新人1 小时前
使用memc-nginx和srcache-nginx模块构建高效透明的缓存机制
运维·nginx·缓存
Yan_chen6662 小时前
SSH(Secure Shell)安全外壳协议详解
运维·网络协议·ssh
隔窗听雨眠2 小时前
OceanBase旁路导入与自增主键冲突深度解析:原理、排查与解决方案
java·服务器·数据库
lingran__3 小时前
Linux 基础常用指令万字详解(上)|文件目录命令,结合底层原理剖析
linux·运维·服务器·后端·centos·linux基础指令
轻揉小乔 真新人3 小时前
T-SQL查询进阶—理解SQL Server中的锁
服务器·数据库·sql
各类产品分享3 小时前
电力行业AR智能运维哪个品牌好
运维·ar·ar巡检