这里是普通文章模块栏目内容页
web服务器反向代理(reverse proxy) 怎么理解 ?

web服务器反向代理(reverse proxy) 怎么理解 ?

简单说
我们内网访问facebook用的代理就叫正向代理

从美国访问我们内网需要的代理就叫反向代理

多台服务器处于一个内网,而我们要访问这些服务器,中间加一台 反向代理,根据各台服务器的负载,指定访问其中一台。这就叫负载均衡
反向代理一般就是来干这个的

代理服务器来接受外部的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给外部的请求连接的客户端,此时代理服务器对外就表现为一个服务器。 

反向代理一般作用: 
1:减轻源服务器负载 
2:保障源服务器安全 
3:对源服务器进行负载均衡(Load Balance)。
 

一般反向代理置于源服务器的前端,配备大容量的内存和高速磁盘,缓存客户的请求,所以反向代理又称为服务器加速(Server accelerate)。源服务器一般不再和客户直接通讯,当客户请求没有缓存的内容或者动态内容时,反向代理向源服务器发送请求,然后把回应转发给客 户,在这种情况下,反向代理服务器通常要为一个请求同时维护两个会话。和普通的代理不同,反向代理一般只代理一台或者有限的几台服务器,对于客户而言,反 向代理服务器对于他们就相当于源服务器,对于源服务器而言,反向代理服务器通常就是唯一的客户,因为一般客户不和源服务器直接通信。典型情况下,源服务器 对于客户或者客户对于源服务器,都是不可见的。 

反向代理服务器位于本地WEB服务器和外部网络之间,如下图所示: 
 
 

当用户浏览器发出一个HTTP请求时,通过域名解析将请求定向到反向代理服务器(如果要实现多个WEB 服务器的反向代理,需要将多个WEB服务器的域名都指向反向代理服务器)。由反向代理服务器处理器请求。反向代理一般只缓存可缓冲的数据(比如html网 页和图片等),而一些CGI脚本程序或者ASP.NET/JSP之类的程序不缓存。它根据从WEB服务器返回的HTTP头标记来缓冲静态页面。有四个最重 要HTTP头标 记: 

    * Last-Modified: 告诉反向代理页面什么时间被修改 
    * Expires: 告诉反向代理页面什么时间应该从缓冲区中删除 
    * Cache-Control: 告诉反向代理页面是否应该被缓冲 
    * Pragma: 告诉反向代理页面是否应该被缓冲.