一、什么是反向代理?
反向代理指的是代理服务器根据客户端的请求,从其关系的一组或多组后端服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端的过程,客户端只会得知代理服务器的IP地址,而不知道在代理服务器后面的服务器集群的存在。
通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送 到代理服务器中。当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。
二、反向代理服务器的工作原理
一般来说,反向代理的工作流程是这样的:由客户端发起对代理服务器的请求,代理服务器在中间将请求转发给某一个服务器,服务器将结果返回给代理服务器,代理服务器再将结果返回给客户端。
反向代理服务器通常有两种模型,它可以作为内容服务器的替身,也可以作为内容服务器集群的负载均衡器。
1、作内容服务器的替身
如果您的内容服务器具有必须保持安全的敏感信息,如信用卡号数据库,可在防火墙外部设置一个代理服务器作为内容服务器的替身。当外部客户机尝试访问内容服务器时,会将其送到代理服务器。实际内容位于内容服务器上,在防火墙内部受到安全保护。代理服务器位于防火墙外部,在客户机看来就像是内容服务器。
2、作为内容服务器的负载均衡器
可以在一个组织内使用多个代理服务器来平衡各 Web 服务器间的网络负载。在此模型中,可以利用代理服务器的高速缓存特性,创建一个用于负载平衡的服务器池。此时,代理服务器可以位于防火墙的任意一侧。如果 Web 服务器每天都会接收大量的请求,则可以使用代理服务器分担 Web 服务器的负载并提高网络访问效率。
3、反向代理的优点:
(1)提高了内部服务器的安全;
(2)加快了对内部服务器的访问速度;
(3)节约了有限的IP资源。
正是由于反向代理的这种工作特性,它常常被应用于保障匿名性和安全性、缓存数据、服务器负载均衡等等用途。在我们的日常生活中最为常见的反向代理应用就是客户服务业务了,我们拨打客服电话后,代理服务器会自动为我们转发呼叫,并分配对应的接线员,以此来响应并回复我们的问题。