DNS负载均衡(Domain Name Server-域名服务器)的基本方法是把同一站点的不同的拷贝放在相同的物理服务器上,然后,DNS服务器可以返回多个IP地址,方法是DNS服务器既可以返回域名的多个IP地址,也可以对同一个DNS请求返回不同的IP地址。由于难以确定一个客户端对应的是哪一个IP地址,所以DNS只能提供基本的负载均衡服务。而且,由于DNS请求留在了客户端和其它的服务器的缓存里,同一个客户端会继续访问同一个Web服务器。所以就有可能造成一大批频繁上网的用户用一个IP地址,而另外较少上网的用户却访问另一个IP地址,从而造成分配不均。还有一个问题是DNS的缓存并不是持续激活的,这就可能造成当一个客户端正在使用一个Web站点时,会结束对该站点其它IP地址的访问。这会给动态网站带来问题,特别是对于需要接受并存储客户端的数据的情况。
软、硬件的负载均衡方法与DNS负载均衡相似,但网站只发布一个IP地址,专门设置一台机器接受针对这个IP地址的HTTP请求并把这些请求分发给网站的各个服务器。这种分发通常发生在TCP/IP路由的层次上,可以透明地把这个单一的源/目标IP地址映射到一个特定的服务器上。这种技术可以通过软件或硬件的方式实现。硬件方式的方案效率较高,成本也较高。因为其负载均衡功能可以在Web服务器之间均衡地分配访问请求,所以这种方式比DNS方式要好。而且,这种方式可以不断地监测Web服务器,如果某一个服务器出现故障或问题,则可以把请求动态地重新定向到功能相同的服务器上。
反向代理Reverse Proxying也是一种简便易行的办法,代理截获客户端的请求,把请求转发给Web服务器,再把服务器的回复传给客户端并把内容放入自己的缓存里。这样,同样内容的访问就不必直接由服务器处理,可以在很大程度上减轻服务器的负担。
负载均衡是一种横向扩展服务器性能的方法,我们还可以通过提高Web服务器本身性能,即纵向的方法来提高服务器的性能。