在谈反向代理服务器这个反人类的名词之前,我们先说说正向代理,顾名思义,proxy,所谓代理,就是代为处理问题,将最终得到的处理结果返回给需求方,而不需要请求方亲自与服务方打交道,如图,请求和反馈消息经由proxy进行转发,对于client客户端而言,server是透明的。例如一次HTTP请求,总的来说,需要完成以下工作:
1,用户IP报文的目的IP = 代理服务器IP
2, 用户报文端口号 = 代理服务器监听端口号
3, HTTP 消息里提供服务器的URL链接
4,代理服务器可以根据HTTP消息体里的链接与真实服务器直接通信
5,服务器返回处理结果(如,网页)
6,代理服务器转发结果,返回给用户。
那么现在我们来看看反向代理,根据上图,也许你已经能够大致猜到了,在反向代理过程中,这一次proxy站在了服务器server这一方,他与server同处于一个LAN,
我们来打一个比方理解一下,你是做服装生意的,有自己的品牌,和一个自己的工厂,拥有自己的加工标准。那么这个厂房就相当于自己的一个服务器,随着生意越来越红火,你发现一个工厂已经不能满足需求,于是按照相同的标准,第二个,第三个厂房建立起来,作为老板,你负责把大量的服装订单均匀的分配给每个厂房,它们都能生产出相同品质的同一个品牌的服装,对于消费者而言,它们并不知道这件衣服到底是哪一家工厂生产的,只知道都是从你这里购买的,对于他们来说,工厂是透明的,那么这时,你所起到的作用就相当于是代理服务器,是整个集团的门面,所有的交易都经过你的中转,起到了一个负载均衡的作用。这就是我们常说的反向代理。