1. 正向代理(Forward Proxy)
-
角色:客户端的“代言人”
正向代理是客户端(比如你的电脑)用来访问外部网络的工具。
例子:
你在公司内网,想访问 YouTube,但公司防火墙禁止直接访问。这时你通过一个代理服务器(比如VPN),让它代替你访问 YouTube,再把结果返回给你。 -
特点:
-
客户端主动配置:需要手动设置代理服务器地址(如浏览器设置代理)。
-
隐藏客户端身份:目标服务器只知道代理服务器的信息,不知道真实客户是谁。
-
用途:翻墙、突破网络限制、缓存加速等。
-
-
比喻:
正向代理就像你的“跑腿小哥”。你想买奶茶,但自己不方便出门,于是让小哥去奶茶店买,奶茶店只知道小哥来过,不知道是你想喝。
2. 反向代理(Reverse Proxy)
-
角色:服务器的“门面担当”
反向代理是服务器端用来接收客户端请求的中间层。
例子:
当你在浏览器输入www.taobao.com
,请求其实先到达淘宝的反向代理服务器(比如Nginx),反向代理再决定把请求转发给后端的某台真实服务器(比如处理商品页的服务器、处理支付的服务器等)。 -
特点:
-
客户端无感知:用户不知道背后有多个服务器,以为直接访问的就是目标网站。
-
保护真实服务器:隐藏服务器信息,防止直接暴露到公网。
-
用途:负载均衡、缓存加速、安全防护(如防DDoS攻击)。
-
-
比喻:
反向代理就像餐厅的“前台接待员”。顾客点餐时,接待员把订单分给后厨的不同厨师(比如做菜的、做甜点的),顾客只看到接待员,不知道后厨具体是谁在干活。
总结对比
功能 | 正向代理 | 反向代理 |
---|---|---|
服务对象 | 客户端(用户) | 服务器(网站) |
配置位置 | 客户端(如浏览器设置代理) | 服务器端(如Nginx配置) |
隐藏对象 | 隐藏客户端身份 | 隐藏真实服务器信息 |
常见用途 | 翻墙、缓存加速 | 负载均衡、安全防护、缓存加速 |
一句话记住:
-
正向代理是“替客户端跑腿”,反向代理是“替服务器挡枪”。