反向代理服务器的工作方式
反向代理服务器(Reverse Proxy Server)一般被置于源服务器的前端,如图中所示。它配备有大容量的内存和高速磁盘,用于缓存客户的请求,所以反向代理服务器又称为加速服务器。
图:反向代理服务器
对于客户送过来的请求,反向代理服务器的工作方式如下:
- 使用反向代理服务器后,客户端送过来的请求会首先送到反向代理服务器。
- 反向代理服务器先查自己缓存的内容(动态内容或静态内容)。
- 如果客户请求内容在缓存中,则直接将结果反馈给客户,此次请求完成。
- 如果客户请求内容不在缓存中,它会根据后面的各个HTTP服务器(或内容服务器)的运行情况,做负载均衡处理,将请求进一步送到某个http 服务器(或内容服务器)。
- 后端服务器作处理后,反馈结果给反向代理服务器。
- 对于后端服务器反馈过来的结果,它会将结果缓存(动态内容或静态内容)起来,并进一步送给客户端,此次请求完成。
反向代理服务器通常要为一个请求同时维护两个会话:与客户端的会话和与后端服务器的对话。和普通的代理不同,反向代理服务器一般只代理一台或者有限的几台服务器,对于客户而言,反向代理服务器对于他们就相当于源服务器,对于源服务器而言,反向代理服务器通常就是唯一的客户,因为一般客户不和源服务器直接通信。典型情况下,源服务器对于客户或者客户对于源服务器,都是不可见的。
反向代理服务器的作用代理服务器起着客户机中继站的作用。它转发请求并接收响应,这使它成为高速缓存结果以便重用的理想场所。这类代理服务器称为高速缓存代理,它具有以下作用:
- 加快对客户的响应时间,减轻后端源服务器(即内容服务器)负载
使用反向代理服务器后,由于它具有大容量缓存,可以缓存多个静态/动态页面,当有客户请求送过来时,如能够直接在缓存中找到请求结果,就可以直接反馈给客户,而不用再将请求送给后端服务器。这样就加快了对客户的响应时间,同时也减轻了后端源服务器的负载。
- 保障后端源服务器(即内容服务器)的安全
对Internet上的客户端而言,它只能接触到反向代理服务器,因此反向代理服务器就成为后端服务器的屏障,保障了后端服务器的安全。
- 减少源服务器(即内容服务器)节点之间占用的网络带宽
使用反向代理服务器后,它具有的大容量缓存可以减少源服务器的网络通讯量。这样就减少源服务器(即内容服务器)节点之间占用的网络带宽。
- 对源服务器进行负载均衡(Load Balance)。