反向代理

代理伺服器類型

反向代理Reverse proxy)在电脑网络中是代理伺服器的一种。伺服器根据客户端的请求,从其关系的一组或多组后端伺服器(如Web伺服器)上获取资源,然后再将这些资源返回给客户端,客户端只会得知反向代理的IP地址,而不知道在代理伺服器后面的伺服器集群的存在[1]

将互联网与内网连接起来的代理伺服器。
互联网中的请求发送给反向代理,反向代理把请求转发到内网中的伺服器。

前向代理不同,前向代理作为客户端的代理,将从互联网上获取的资源返回给一个或多个的客户端,服务端(如Web伺服器)只知道代理的IP地址而不知道客户端的IP地址;而反向代理是作为伺服器端(如Web伺服器)的代理使用,而不是客户端。客户端借由前向代理可以间接访问很多不同互联网伺服器(集群)的资源,而反向代理是供很多客户端都通过它间接访问不同后端伺服器上的资源,而不需要知道这些后端伺服器的存在,而以为所有资源都来自于这个反向代理伺服器。

反向代理在现时的互联网中并不少见,而另一些例子,像是CDNSNI代理等,是反向代理结合DNS的一类延伸应用。

功能 编辑

反向代理的主要作用为:

  • 对客户端隐藏伺服器(集群)的IP地址
  • 安全:作为应用层防火墙,为网站提供对基于Web的攻击行为(例如DoS/DDoS)的防护,更容易排查恶意软件
  • 为后端伺服器(集群)统一提供加密和SSL加速(如SSL终端代理)
  • 负载平衡,若伺服器集群中有负荷较高者,反向代理通过URL重写,根据连线请求从负荷较低者获取与所需相同的资源或备援
  • 对于静态内容及短时间内有大量存取请求的动态内容提供缓存服务
  • 对一些内容进行压缩,以节约带宽或为网络带宽不佳的网络提供服务
  • 减速上传
  • 为在私有网络下(如局域网)的伺服器集群提供NAT穿透及外网发布服务
  • 提供HTTP存取认证[2]
  • 突破互联网封锁

常见反向代理软件 编辑

另见 编辑

参考文献 编辑

  1. ^ Forward and reverse proxies. The Apache Software Foundation. [2011-02-09]. (原始内容存档于2011-02-10). 
  2. ^ Possible to add basic HTTP access authentication via HAProxy?. serverfault.com. [2018-02-22]. (原始内容存档于2018-10-04).