反向代理和HTTP重定向
1、什么是正向代理(前向代理)?
在NAT技术(Network Address Translation)出现之前,所有主机无法直接与外网相连,要想上网,需要连接到一台能够访问外网的Web服务器,再通过这台服务器访问外网。而这台Web服务器就叫做“正向代理服务器”。
现在的“FQ”技术也是如何,我们把请求发给一台可以连接外面世界的Web服务器,由它转发我们的请求,再将结果返回给我们。这台Web服务器就是“正向代理服务器”。
综上所述:正向代理服务器是客户端和目的服务器之间的一个中介,客户端通过正向代理服务器访问客户端原本无法访问的目标服务器。
2、什么是反向代理?
客户端向一个服务器A提交请求后,服务器A偷偷地去服务器B上获取资源,并返回给客户端。客户端天真地以为数据是服务器A给他的。在这过程中,服务器A称为“反向代理服务器”,服务器B称为反向代理服务器的“后端服务器”。
3、区别
两者最直观的区别是在用户的角度。“正向代理”是用户使用的技术。用户首先是知道自己要访问的目标服务器是谁,但由于某种原因无法直接访问该目标服务器,因此选择使用正向代理服务器帮忙转发请求。
而“反向代理”是服务器使用的技术。用户向服务器发送请求后,服务器在用户不知情的情况下去其他服务器上获取资源并返回给用户。
4、ATS反向代理缓存
通过正向代理缓存,Traffic Server为客户端处理发往远距离源服务器的web请求。反向代理缓存(又叫服务器加速或虚拟主机托管)和正向代理不同。因为Traffic Server作为源服务器的代理缓存并存储内容。Traffic Server被配置为用户直接连接的源服务器(典型的用法是将服务器的主机名解析到Traffic Server)。
5、反向代理作用
- 为负载过高的源服务器减负
- 为地理上分散的区域高效的内容分发(CDN)
- 为包含机密信息的源服务器提供安全屏障
6、为负载过高的源服务器减负
Traffic Server可以吸收发向源服务器的请求,通过减少源服务器的负载和热点来改善web服务的速度和质量。访问流程如下图:
反向代理的工作方式
一般情况下当浏览器有请求时会直接发送这些请求到源服务器。当Traffic Server工作在反向代理模式,它会在这些请求到达源服务器之前就拦截它们。典型的用法是将源服务器的DNS入口(主机名)解析成Traffic Server的IP地址。当Traffic Server被配置为源服务器,浏览器会和Traffic Server连接而非源站。为了避免DNS冲突,源站的主机名和外在DNS主机名必须不同。
下面是Traffic Server处理从客户端浏览器发出的HTTP请求方式:
1. 客户端浏览器向名为www.host.com的主机发起一个http请求。Traffic Server以源服务器的角色接收这个请求(源站对外主机名被解析到ATS上)。
2. Traffic Server在remap.conf文件中定位映射规则并重新映射这个请求到一个指定的源站(realhost.com)
3. Traffic Server建立一个和源站的HTTP连接。
4.如果请求在缓存命中而且内容是有效的,Traffic Server直接从缓存中向客户端发送被请求的对象。否则,Traffic Server从源站获取被请求的对象资源,发送给客户端,同时在缓存中保存一份该对象的拷贝。
微信
支付宝