proxy的简单理解

1,643 阅读3分钟
  1. 正向代理

正向代理是作用在用户端的。例如我们访问Facebook,Google,我们可能需要购买vpn,有些是通过类似网站加速软件像Lantern这样的软件才可以访问。并且vpn或者网站加速器是在我们的用户浏览器端设置的(并不是在远端的服务器设置)。浏览器先访问vpn地址,vpn地址转发请求,并最后将请求结果原路返回来。

简单一点:A向C借钱,由于一些情况不能直接向C借钱,于是A想了一个办法,他让B去向C借钱,这样B就代替A向C借钱,A就得到了C的钱,C并不知道A的存在,B就充当了A的代理人的角色。

2. 反向代理

反向代理是作用在服务器端的,是一个虚拟ip(VIP)。对于用户的一个请求,会转发到多个后端处理器中的一台来处理该具体请求。大型网站都有DNS(域名解析服务器),load balance(负载均衡器)等。

理解起来有些抽象,可以这么说:A向B借钱,B没有拿自己的钱,而是悄悄地向C借钱,拿到钱之后再交给A,A以为是B的钱,他并不知道C的存在。

总结,nginx作为软件能支持反向代理,也就是说nginx可以作为负载均衡器。

(负载均衡器可以提高网站性能,支持更高并发请求)

如何理解Forward Proxy与Reverse Proxy Forward Proxy应该叫前向代理,而不是正向代理; Reverse Proxy应该叫反转代理,而不该叫反向代理 Forward Proxy与Reverse Proxy从逻辑图上看只有一个小小的区别,前者是为客户端请求做代理,所以叫Forward Proxy(前向代理);后者是为服务端服务做代理,所以对于客户端来说,是反转(交换,反过来)了,不代理客户端了,故叫Reverse Proxy(反转代理)。 所以Forward与Reverse叫法实际针对的对象都是客户端,也就是广大使用者,在客户端的代理叫前向代理,在服务端的就叫反转代理。 实际我觉得前向代理(Forward Proxy)与反转代理(Reverse Proxy)还是不好理解,就像我最刚开始说的,应该叫客户端代理与服务端代理,这样理解起来真是非常贴切,谁都能懂。 客户端代理与服务端代理用处 客户端代理(前向代理、正向代理) 我们在国内上不了google、facebook,那我们实际可以在香港建个代理服务器,我们通过代理服务器就可以访问google与facebook了,这就叫前向代理,代理的是使用者; 这跟现实生活很像,比如我想买一个华为mate 9保时捷版送给客户,懂行的都知道,中国境内是拿不到货的,华为也不公开发售,我肯定买不到,但让客户满意更重要,怎么办呢?那我可以找个关系好的中间人去帮我买,比如这个人是华为的高管,他可以拿到货,那我也就买到了,呵呵,好吧,仅仅是举例哈,实际我也不认识华为高管。 服务端代理(反转代理、反向代理) 客户端代理的话,非IT人士也可以理解,但服务端代理可能要困难一点,如果做作过服务器部署的就非常好理解了。 比如我们公司提供5个不同服务,我们部署在5个节点上的,但用户访问时不用直接请求我们5个节点上的服务,只需要访问我们的代理服务器就行了,代理服务器根据请求内容分发到不同服务器节点。这仅是一种使用场景,当然还可以做负载均衡等。