使用负载均衡技术建设高负载的网络站点(2)

80酷酷网    80kuku.com

  网络|站点

  很多网络协议都支持“复位向”功能,例如在HTTP协议中支持Location指令,接收到这个指令的浏览器将自动复位向到Location指明的另一个URL上。由发送Location指令比起执行服务请求,对Web服务器的负载要小的多,因此可以根据这个功能来设计一种负载均衡的服务器。任何时候Web服务器认为自己负载较大的时候,它就不再直接发送回浏览器请求的网页,而是送回一个Locaction指令,让浏览器去服务器集群中的其它服务器上获得所需要的网页。

  在这种方式下,服务器本身必须支持这种功能,然而具体实现起来却有很多困难,例如一台服务器如何能保证它复位向过的服务器是比较空闲的,并且不会再次发送Location指令?Location指令和浏览器都没有这方面的支持能力,这样很容易在浏览器上形成一种死循环。因此这种方式实际应用当中并不多见,使用这种方式实现的服务器集群软件也较少。有些特定情况下可以使用CGI(包括使用FastCGI或mod_perl扩展来改善性能)来仿真这种方式去分担负载,而Web服务器仍然保持简洁、高效的特性,此时避免Location循环的任务将由用户的CGI程序来承担。

2、基DNS的负载均衡 

  由基服务器软件的负载均衡需要改动软件,因此常常是得不偿失,负载均衡最好是在服务器软件之外来完成,这样才能利用现有服务器软件的种种优势。最早的负载均衡技术是通过DNS服务中的随机名字解析来实现的,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中的一个地址。因此,对同一个名字,不同的客户机会得到不同的地址,他们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。

  例如如果希望使用三个Web服务器来响应对的HTTP请求,就可以设置该域的DNS服务器中关该域的数据包括有与下面例子类似的结果:

  www1 IN A  192.168.1.1
  www2 IN A  192.168.1.2
  www3 IN A  192.168.1.3
  www IN CNAME www1
  www IN CNAME www2
  www IN CNAME www3



分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: