「Nginx」正向代理与反向代理

转载请注明出处: blog.csdn.net/jinixin/article/details/89574956

 

谈到正向代理和反向代理, 首先就要先了解代理的概念. 代理, 即代理服务器(Proxy Server), 一般我们会省略”服务器”这几个字, 代理在客户端和服务器之间充当中间人.

具体过程如下, 代理接收客户端发来的请求, 代理从请求中解析出目标服务器, 并向目标服务器转发请求, 在得到目标服务器的响应后, 便将响应转发回客户端. 期间代理可以选择性的缓存响应, 以便加速后续相同访问, 因此一般代理都有较大的磁盘空间.

 

 

正向代理

 

正向代理的定义

下图中的"代理服务器"便是正向代理服务器, 简称正向代理.

正向代理

客户端所有的网络请求都通过代理服务器中转. 目标服务器不知道客户端的存在, 其认为访问者就是代理服务器, 不知道真正的访问者是谁.

整个过程有点类似于外汇兑换, 客户端是客户, 正向代理是银行, 目标服务器是外汇提供国. 客户知道自己要兑换某国家的外汇, 外汇提供国并不知道是哪个客户来兑换的, 其只知道自己在和某某银行交易.

 

正向代理的作用

1. 网络加速器: 加速部分站点访问.

2. 突破访问限制: 突破公司或国家对部分网络的屏蔽.

Request URL: https://www.google.com.hk/
Request Method: GET
Status Code: 200 
Remote Address: 216.58.221.238:443

上面为开启代理前, 浏览器的请求直接发送给Google服务器. 下面为开启代理后, 浏览器的请求转交给代理服务器(127.0.0.1:1086).

Request URL: https://www.google.com.hk/
Request Method: GET
Status Code: 200 
Remote Address: 127.0.0.1:1086

3. 防火墙: 用作内部网络的出网跳板机, 因其可以解析请求与响应, 从而能拦截一部分危险响应.

4. 保护客户端隐私: 请求是通过代理中转的, 因此目标服务器不知道请求的真正发起者, 故可以较好的隐藏客户端IP. 题外话, 通过一层代理还是比较好追查的, 要想成为无法追踪的隐形人, 可以考虑使用”代理链”.

 

 

反向代理

 

反向代理的定义

下图中的代理服务器便是反向代理服务器, 简称反向代理.

反向代理

代理服务器本身并不具备处理请求的能力, 因此其会将收到的请求按照负载均衡算法转发给背后的应用服务器, 在得到应用服务器响应后, 其再将响应转发给相应客户端. 客户端并不知道应用服务器集群的存在, 它们认为代理服务器便是目标服务器.

整个过程有点类似于超市, 客户端是顾客, 反向代理是超市, 应用服务器是商品提供商. 顾客并不知道某商品背后的商品提供商是谁, 也不会直接和某商品提供商直接交易, 顾客都是和某超市进行交易的.

 

反向代理的作用

1. 负载均衡: 将请求压力平均负载到多台服务器上, 从而保证背后的整个应用服务器集群稳定.

2. 保护服务器的隐私: 隐藏背后的服务器集群, 只向客户端暴露自身这一个IP.

3. 缓冲访问峰值: 向背后的应用服务器转交完整的有效请求.

4. 缓存: 缓存静态资源.

 

反向代理的杰出代表: Nginx服务器

 

 

总结

 

我们可以简单认为, 代理服务器在客户端侧,  该代理便是正向代理. 代理服务器在服务器侧, 该代理便是反向代理. 要注意的是, 这个"在某侧"更多是逻辑上的, 不要从局域网或地理位置远近来理解.

 

 

文中如有不当之处, 还望包容和指出, 感谢

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章