正向代理和反向代理

正向代理:需要客户端主动设置代理服务器IP或域名进行访问,由设置的服务器IP或域名去获取访问内容并返回给客户端。

定义:正向代理是客户端请求代理服务器,然后由代理服务器代表客户端向目标服务器发起请求,目标服务器返回的数据经由代理服务器返回给客户端

特点:

客户端发起:客户端知道代理的存在,并且需要通过代理来访问目标服务器。
隐藏真实IP:目标服务器无法看到客户端的真实IP地址,只有代理服务器的IP地址。


用途:

常用于突破网络限制、访问被屏蔽的网站、加速访问等场景。


示例:

访问某些被防火墙阻止的网站。

我们常说的代理也就是指正向代理,正向代理的过程,它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求。

* 可以到达远方,不可描述
* 可以做缓存,加速访问资源
* 对客户端访问授权,上网进行认证
* 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

正向代理主要用于突破网络访问限制,如学术上网,以及隐藏客户端IP地址。在配置正向代理时,可以使用以下代码示例:

http {  
    # 定义代理服务器地址  
    proxy_pass http://example.com;  
    # 其他配置项...  
}

反向代理:反向代理不需要客户端做任何设置,直接访问服务器真实IP或域名,但是服务器内部会自动根据访问内容进行跳转及内容返回。

定义:反向代理是客户端直接向代理服务器发起请求,代理服务器再将请求转发到后端的目标服务器。目标服务器将响应返回给代理服务器,然后代理服务器将响应返回给客户端。

特点:
服务器发起:客户端不需要知道后端的真实服务器,所有请求都通过反向代理。
隐藏后端服务器:反向代理可以隐藏后端服务器的真实IP地址,保护内部网络。
负载均衡和缓存:反向代理常用于负载均衡、SSL终止、缓存加速等目的。

示例:
网站使用反向代理服务器来处理所有的用户请求,并将请求分发到多个后端应用服务器。

因为反向代理隐藏了真实的服务端,当我们请求一个网站的时候,背后可能有成千上万台服务器为我们服务,但具体是哪一台,我们不知道,也不需要知道,我们只需要知道反向代理服务器是谁就好了,反向代理服务器会帮我们把请求转发到真实的服务器那里去。

* 保证内网的安全,阻止web攻击,大型网站,通常将反向代理作为公网访问地址,Web服务器是内网
* 负载均衡,通过反向代理服务器来优化网站的负载

反向代理主要用于提供负载均衡和安全防护,例如将防火墙后面的服务器提供给Internet用户访问。在配置反向代理时,可以使用以下代码示例:

http {  
    # 定义代理服务器地址  
    upstream backend {  
        server backend1.example.com;  
        server backend2.example.com;  
    }  
    # 其他配置项...  
    server {  
        # 监听端口  
        listen 80;  
        # 代理到后端服务器  
        location / {  
            proxy_pass http://backend;  
        }  
    }  
}

正向代理即是客户端代理,代理客户端,服务端不知道实际发起请求的客户端。

反向代理即是服务端代理,代理服务端,客户端不知道实际提供服务的服务端。

正向代理和反向代理的本质区别在于代理的方向和服务对象不同,具体分析如下:

正向代理(Forward Proxy)

  • 定义:正向代理是客户端与互联网之间的中间服务器,代表客户端向外部服务器发送请求。

  • 核心特点

    • 客户端配置:需在客户端(如浏览器)显式设置代理服务器的地址和端口。

    • 隐藏客户端:外部服务器只能看到代理服务器的IP,无法获取客户端的真实身份。

    • 突破访问限制:用于访问被防火墙或地理限制的资源(如科学上网、企业内网访问外网)。

  • 典型场景

    • 公司内部员工通过代理访问外网。

    • 用户通过VPN访问被封锁的网站。

  • 技术实现

    • 客户端发送请求到代理服务器,代理转发请求到目标服务器,并将响应返回给客户端。

反向代理(Reverse Proxy)

  • 定义:反向代理是服务器端的代理,位于用户与真实服务器之间,代表服务器接收并处理客户端请求。

  • 核心特点

    • 服务端配置:无需客户端设置,用户直接访问反向代理的地址。

    • 隐藏服务器:客户端不知道后端真实服务器的存在,保护服务器架构信息。

    • 负载均衡与安全:分发请求到多个服务器,提升性能;提供SSL加密、DDoS防护等。

  • 典型场景

    • 网站使用Nginx反向代理分发请求到多个应用服务器。

    • CDN节点缓存内容并回源到原始服务器。

  • 技术实现

    • 客户端请求反向代理,代理根据策略(如轮询、权重)转发到后端服务器,返回响应给用户。

核心对比

维度正向代理反向代理
代理方向客户端→代理→目标服务器客户端→代理→真实服务器
配置主体客户端显式配置服务端隐式配置
隐藏对象客户端身份服务器身份
主要功能突破限制、匿名访问负载均衡、安全防护、缓存加速
典型工具Shadowsocks、SquidNginx、HAProxy、Cloudflare
用户感知用户知道代理存在用户认为直接访问目标服务器

总结

  • 正向代理是客户端的“代言人”,帮助用户访问外部资源,强调客户端的匿名性和访问控制。

  • 反向代理是服务器的“守门人”,优化服务端的性能与安全,强调请求分发和资源保护。

  • 两者均通过中间层实现请求转发,但方向、目的及配置方式截然不同,需根据实际需求选择应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QQ851301776

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值