文章内容
一、反向代理基本概念
逆向代理是一种代理服务器。在将资源返回给客户机之前,它会根据客户机的请求从后端服务器(例如 Web服务器)获取资源。
不同于前进代理,前进代理将从因特网上获得的资源以媒介的形式返回给相关的客户端,而前进代理则是作为代理在服务器端(例如 Web服务器)使用的,而非客户端。
客户机可以通过前向代理访问许多不同的资源,反向代理就是许多客户机在不了解后端服务器存在的情况下通过它访问不同后端服务器上的资源,认为所有的资源都来自这个后端服务器。将因特网上的请求发送给反向代理,后者将请求转发给内部网络上的服务器。
二、常用的反向代理服务器
它们分别是:Ngnix,IIS,Apache。
三、反向代理的主要作用
- 1. 加密和SSL加速
- 2. 负载均衡
- 3. 缓存静态内容
- 4. 压缩
- 5. 减速上传
- 6. 安全防火墙
- 7. 外网发布
- 8. 突破互联网封锁
- 9. 解决跨域问题
四、反向代理基本工作原理
1、TCP监听模块
监听TCP请求,其中消息内容是一个应用层协议的请求(如HTTP、FTP、Email等)。关于开始处理时是否单独生成线程的问题,这由服务器自己决定,目前最流行的是先入消息队列,然后再进行异步处理,这将极大地提高代理的吞吐量和稳定性。
2、匹配被代理服务器
根据表(存储外部网络URIs和内部网络服务器之间的对应关系,通常需要手动设置),如果匹配,代理服务器将继续处理,否则将根据外部网络协议返回错误消息。
3、应用负载均衡策略
当互联网规模较大时,为了系统的整体稳定,解决单点问题,需要根据客户端的策略,合理的向代理服务器发送消息。一种简单的策略是散列分布或随机分布,通常由用户配置和选择。
4、预处理
在此根据外部网络应用协议协商进行解密,安全,对话,解冻等处理。
5、新生成网络报文
本机根据协商好的内网应用协议生成网络信息,可执行加密、安全、会话、压缩等操作。
6、转发给被代理服务器
向内网服务器发送新生成的网络消息(可能是 Web服务器、 FTP服务器、邮件服务器)。
7、接受网络报文
通过内部服务器反馈的网络消息。
8、预处理
这里根据协商的外部网络应用协议进行加密、安全、对话、压缩等处理。
9、资源输出模块
此时,生成符合外部网络应用协议要求的文件,发送到外部网络连接的另一端(用户代理)。
五、总结
反向代理服务器在企业应用中性能突出,具有集中安全、负载均衡等优势。