美文网首页
101.http权威指南-第20章-重定向与负载均衡

101.http权威指南-第20章-重定向与负载均衡

作者: wo不是黄蓉 | 来源:发表于2022-04-21 20:51 被阅读0次

重定向和负载均衡是共存的。

负载均衡

负载均衡就是分摊到多个操作单元上进行执行,从而共同完成工作任务。

web服务器会根据每个ip来处理请求,将请求分摊到复制的服务器中去。

代理希望根据每个协议来处理请求,理想情况下所有的http流量都应该通过代理传输,因为代理缓存上会存储常用的文档,可以直接提供,从而避免通过更长、更昂贵的路径连接到原始服务器。

重定向的目标是尽快将Http报文发送到可用的web服务器上去。

影响Http报文传输方向受http应用程序和报文经过的路由设备的影响

  • 配置创建客户端报文的浏览器应用程序,使其将报文发送给代理服务器

  • dns解析程序会选择用于报文寻址的ip地址,对不同物理地域的不同客户端来说,这个ip地址可能不同。

  • 报文经过网络传输时,会被划分为一些带有地址的分组,交换机和路由器会检查分组中的tcp/ip地址,并根据分组的tcp/ip地址来确定发送路线。

  • web服务器可以通过Http重定向将请求反弹给不同的web服务器。

浏览器配置、dns,tcp/ip路由以及Http都提供了重定向报文的机制。

通用的重定向方法

  • http重定向:http请求先到第一台web服务器,这个服务器再选择一台最佳的服务器为其提供内容。第一台服务器会向客户端发送一条到指定服务器的重定向。客户端会将请求重新发送到选中的服务器上。

web服务器把重定向报文发给客户端,高度客户端试试重定向的地址。

确定最佳的可用服务器会更复杂一些,不仅要考虑到服务器的负载,还要考虑到浏览器和服务器之间的因特网距离。

http重定向可以知道客户端的ip地址。

缺点:需要原始服务器进行大量处理来判断要重定向到哪台服务器去;增加了用户时延;重定向服务器出故障就会瘫痪。

  • dns重定向:dns服务器决定在url的主机中返回多个ip地址中的哪一个。缺点:需要配置dns服务器。

DNS轮转:使用了DNS主机名解析中的一项特性,在web服务器集群中平衡负载。不考虑客户端和服务器的相对位置,或服务器当前负载有关的因素。

多个地址及轮转地址的循环:dns在每次完成查询之后对地址进行轮转。

为什么要进行DNS轮询

由于一台服务器无法承载大的网站,因此准备了多台服务器组成集群,这些服务器并不在一个地方,就需要添加多条记录,把一个域名指向多个IP。

用来平衡负载的DNS轮转:也就是为了降低服务器的压力,DNS服务器会定时或者按照某种策略将请求分摊到不同的服务器上,因此每个用户请求的服务器Ip可能不同。

DNS缓存带来的影响:虽然DNS地址轮转会将负载均衡,很多操作系统会自动进行DNS查找,并且缓存结果。

其他基于DNS的重定向算法:

负载均衡算法(DNS服务器将负载最轻的服务器地址放在前面)、邻接路由算法(DNS服务器将用户导向邻近的服务器)、故障屏蔽算法(DNS服务器根据网络状况,绕过出问题的服务器。)。

  • 任播寻址:几台服务器使用相同的Ip,路由器会将共享ip地址分组发给最近的服务器。缺点:需要配置路由器。

通过最短路径路由功能将客户端请求发送给离它最近的服务器。服务器通过理由协议与路由器进行通信。必须使用路由器语言,并且路由器必须能够处理可能出现的地址冲突。

  • ip mac转发:使用交换机或路由器读取分组的目的地址,如果重定向,交换机会将服务器或代理的目标mac地址给分组。优点:可以节省带宽,提高QOS。缺点:服务器或代理的跳距必须是1.

计算机网络的第二层设备任务是接收具有特定输入MAC地址的分组,然后将其转发到特定的输出MAC地址上去。

交换机检测出IP和端口号,以此来选择路由。

  • ip地址转发:交换机会评估分组的目的端口并将重定向分组的ip地址改成代理或镜像服务器的ip地址。优点:可以节省带宽,提高QOS。缺点:服务器或代理可能看不到真正的客户端ip地址。

由交换机来辨别tcp/ip地址,并通过修改目的ip地址对分组进行转发。

控制响应返回路径的方式:

1.完全NAT,ip转发设备对目标ip地址和源ip地址都进行转换。服务器和客户端无法知道对方的ip。

2.半NAT,服务器绕过交换机直接到客户端。服务器知道客户端的ip地址,却带你,对客户端和服务器之间的整个网络都有某种程度的控制。

代理和缓存重定向技术

  • 显示浏览器配置

  • 代理自动配置

浏览器从配置服务器中解析出pac文件,由PAC文件告诉浏览器为每个URL使用什么代理。

  • web proxy代理自动发现协议

浏览器向配置服务器查询一个PAC文件的URL,不需要将浏览器配置为使用特定的配置服务器。

  • web缓存协调协议

路由器得到一个分组的目的地址,用代理或镜像服务器的ip地址将重定向分组封装起来。可以与很多现有路由器共同工作,可以将分组封装起来,这样客户端的ip就不会丢失了。

  • 因特网缓存协议

代理缓存在一组兄弟代理缓存中查询所请求的内容,还支持缓存的分层结构。

  • 缓存分组路由协议

允许缓存将请求转发给一个父缓存。高速缓存上的内容是不相交的,这组缓存会像一个大型缓存那样工作。

  • 超文本缓存协议

参与代理缓存可以向一组兄弟缓存查询所请求的内容。支持http1.0和http1.1首部。

网元控制协议(NECP)允许网元(NE)与服务器元素(SE)进行交互。NECP只是为SE提供了一种发送负载均衡信息给NE得方式。

代理重定向方法

  • 显示浏览器设置:缺点:如果代理服务器无法响应也不会取请求原始服务器,导致请求出错;不可能强制每个用户都会自动配置代理服务器。

  • 动态自动配置

浏览器取获取一个PAC文件(js文件,可以让浏览器根据一些参数来自动选择代理),文件中说明了每个URL所关联的代理,必须配置浏览器,为PAC文件关联一个特定的服务器。

  • 透明拦截

web代理自动发现协议(WPAD)

不要求用户手动配置代理,不依赖透明流量拦截的情况下,为web浏览器提供一种发现并使用附近代理的方式。

WPAD协议找到PAC文件URL,Pac文件执行js程序,由这个程序返回合适的代理服务器地址。

wpad算法:DHCP(动态主机配置协议),SLP(服务器定位协议)、DNS知名主机名、DNS SRV记录、DNS TXT记录中提供的服务URL。

wpad客户端会按照上面的顺序发送资源发现请求。客户端只会尝试支持的机制。

相关文章

网友评论

      本文标题:101.http权威指南-第20章-重定向与负载均衡

      本文链接:https://www.haomeiwen.com/subject/elywertx.html