FreeBSD基于DNS的负载均衡
可以使用上面提到的各种技术来提升Apache服务器的性能,同时也可以使用增加硬件性能的方法来提高Web 服务器的性能。但是单台服务器的性能总是有限的,尤其是服务器上需要运行大量的CGI程序时,不可能仅靠上面的调整服务器设置的方法来建立一个面向整个Internet,如同Yahoo等站点一样的高负载Web站点。为了建立一个高负载的Web站点,必须使用多服务器的分布式结构。上面提到的使用代理服务器和Web服务器相结合,或者两个Web服务器相互协作的方式也属于多服务器的结构,但在这些多服务器的结构中,每个服务器所起到的作用是不同的,属于非对称的体系结构。非对称的服务器结构中每个服务器起到的作用是不同的,例如一个服务器用于提供静态网页,而另一个用于提供动态网页等等,这样就使得网页设计时就需要考虑不同服务器之间的关系,一旦要改变服务器之间的关系,就会使得某些网页出现连接错误,不利于维护,可扩展性也差。
另外一种多服务器的设计结构为对称结构,在对称结构中每台服务器都具备等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。然后,可以通过某种技术,将外部发送来的请求均匀分配到对称结构中的每台服务器上,接收到连接请求的服务器都独立回应客户的请求。在这种结构中,将外部请求均匀分配到服务器上的技术称为负载均衡技术,由于建立内容完全一致的Web服务器并不困难,因此负载均衡技术就成为建立一个高负载Web站点的关键性技术。
- 基于DNS的负载均衡
最早的负载均衡技术是通过DNS服务中的随机名字解析来实现的。在DNS服务器中,可以为多个不同的地址配置同一个名字,这个数据被发送给其他名字服务器,而最终查询这个名字的客户机将在解析这个名字时随机使用其中一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,因此不同的客户访问的也就是不同地址的Web服务器,从而达到负载均衡的目的。
例如如果希望使用三个Web服务器来回应对www.exampleorg.org.cn的HTTP请求,就可以设置该域的DNS服务器中关于该域的数据包括与下面例子类似的结果: