重定向与负载均衡
为什么要重定向:
WEB内容通常分布在很多地方,这么做出于可靠性的考虑。如果一个位置出问题了,还有其他的可用,将服务器分散,减少网络阻塞。重定向和负载均衡是共存的。
通过重定向方法,如图:
代理与缓存重定向技术,如图:
通用的重定向方法:
壹、HTTP重定向,工作原理如下:
一、向www.joes-hardware.com发送了一条请求:
GET /hammers.html HTTP/1.0
Host: www.joes-hardware.com
User-Agent: Mozilla/4.51
二、服务器会送302重定向报文:
HTTP/1.0 302 Redirect
Server: Stronghold/2.4.2 Apahce/1.3.6
Location: http://161.58.228.45/hammers.html
三、浏览器会用重定向URL重新发送请求,发送到161.58.228.45
GET /hammers.html HTTP/1.0
Host: 161.58.228.45
User-Agent: Mozilla/4.51
如图:
HTTP重定向可以在服务器间引导请求,但它有以下几个缺点:
1.需要原始服务器进行大量处理来判断要重定向到哪台服务器上去。
2.增加了用户时延,因为访问页面时要进行两次往返。
3.如果重定向服务器出故障,站点就会瘫痪。
贰、DNS重定向:
最简单的DNS决策算法就是轮转,如图:
DNS轮转在服务器集群的各台服务器之间进行负载均衡,工作流程,如图:
1.试图连接www.cnn.com时,会用DNS查找IP地址,得到207.25.71.5作为第一个IP地址,然后连接到207.25.71.5.
2.再请求www.cnn.com时,也会用DNS查找IP地址,但由于地址列表已经轮转了一个位置,所以他会得到一个不同的结果,所以
就连到了207.25.71.6上。
DNS允许将几个IP地址关联到一个域中,可以配置DNS解析程序,或对其进行编程。以返回可变的IP地址。