正向代理

定义:

正向代理是位于客户端与目标服务器之间的代理服务器。客户端通过正向代理服务器向互联网发送请求,代理服务器代表客户端向目标服务器请求资源,并将目标服务器的响应返回给客户端。

正向代理就像你请一个朋友代替你去外面买东西。你想买的东西在一个商店里,而你又因为某些原因不能直接去那个商店(可能是距离远,或者商店不接待你等)。于是,你让朋友代替你去商店买东西。你的朋友知道你想买什么,并且把你想买的东西带回给你。

工作原理:

  1. 客户端将请求发送给正向代理服务器,而不是直接发送到目标服务器。
  2. 正向代理服务器接收客户端的请求,代为访问目标服务器。
  3. 目标服务器返回响应,正向代理服务器再将响应返回给客户端。

作用

  • 隐藏客户端真实IP:通过正向代理,目标服务器只能看到代理服务器的IP地址,而无法获取客户端的真实IP。
  • 绕过地理或网络限制:客户端可以通过正向代理访问被封锁的网站或服务。
  • 缓存与加速:正向代理可以缓存从目标服务器获取的数据,以减少重复请求,提高访问速度。

举个栗子

你在公司里无法访问国外网站(因为网络限制),但是你有一个代理服务器(就像是那个“代购朋友”)。你请求访问一个国外网站时,代理服务器帮你转发请求,网站返回的信息再由代理服务器转发给你。你不直接与网站打交道,而是通过代理服务器间接访问外部资源。

  • 核心:客户端知道代理服务器,代理服务器帮助客户端去做一些事情。
  • 使用场景:绕过网络浏览限制、隐藏真实IP、翻墙等。

反向代理

定义:反向代理是位于客户端和多个后端服务器之间的代理服务器。客户端向反向代理发送请求,反向代理根据配置将请求转发到后端的适当服务器,返回响应给客户端。客户端并不知道自己访问的是反向代理,而是以为直接访问的是后端服务器。

反向代理就像是一个商场门口的接待员。商场有多个不同的店铺,每个店铺负责不同的商品或服务。你走到商场门口(接待员处),并告诉接待员你要购买某件商品。接待员根据你需要的商品,带你去相应的店铺,而你根本不知道自己进的是哪个具体的店铺。

工作原理

  1. 客户端发送请求到反向代理服务器。
  2. 反向代理服务器根据负载均衡策略、配置或其他条件,将请求转发给后端的某台服务器。
  3. 后端服务器处理请求并返回响应,反向代理服务器将响应返回给客户端。

作用

  • 负载均衡:反向代理可以将请求分发到多台后端服务器,从而分担负载,避免某一台服务器过载。
  • 隐藏后端服务器:反向代理隐藏了后端服务器的真实IP,使其无法直接暴露在互联网上。
  • 提高安全性:反向代理可以作为安全网关,拦截恶意请求,保护后端服务器免受攻击。
  • SSL终止:反向代理可以承担SSL加密解密工作,减轻后端服务器的负担。

举个栗子

假设你在访问一个大型网站,它有多个服务器来处理不同的请求。比如一个服务器负责处理用户登录,另一个服务器负责处理商品浏览。当你访问这个网站时,反向代理服务器(就像接待员)根据你的请求类型(登录或浏览商品),把请求转发到不同的后台服务器。你完全不需要知道自己请求的背后是哪个具体的服务器,所有的处理都由反向代理来决定。

  • 核心:客户端不知道代理服务器,它只能接触到代理服务器,代理服务器负责把请求转发到后端服务器。
  • 使用场景:负载均衡、提升网站性能、隐藏内部结构等。

正向代理 vs 反向代理

特性正向代理反向代理
代理的对象客户端(你自己)服务器(网站内部的多个服务器)
工作方式你通过代理向外部请求资源你向代理请求资源,代理决定如何处理请求
目标帮助客户端访问外部内容(比如跨越墙)将请求分发到多个后端服务器,提高性能
例子你通过代理访问被封锁的网站网站通过代理来处理不同的请求和负载

总结

  • 正向代理:就像是你请朋友代替你去商店买东西,你知道代理是谁,代理帮你访问外面的资源。
  • 反向代理:就像是商场的接待员,根据你要买的商品,带你到不同的店铺,你不知道自己进的是哪个店铺。