负载均衡的方法有很多,最简单的方法是在不同的服务器之间分配网站的内容。例如,在一个服务器上存放静态HTML页面,另一个上面存放图象文件,而在第三台上运行所有的CGI程序。不过很明显,这种方法效率不会很高,因为它无法在主机之间实现自动的内容分配,如果其中某一方面的内容过多,仍然会形成负载瓶颈。
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服务器本身性能,即纵向的方法来提高服务器的性能。最明显的一种方式是增加服务器的资源,包括硬盘速度、内存和CPU的处理能力。CPU的处理能力对于内容服务很重要,但主要是对动态网站起作用,因为动态网站需要运行相应的程序,需要花费大量的系统资源。单纯提高硬盘的存取速度或增加内存也是简单易行的方法。代理的方法前面已介绍过,有一点需要补充的是Web服务器上的数据同数据库服务器或文件服务器的数据的存储结构是不同的,数据库等的数据结构的设置是为了内容检索的方便,而Web服务器的目录结构则为了便于用户查看进行优化组织,那么代理的功能之一就是提供这种数据结构的转化。
最后一方面,很多网站的信息传输都需要SSL加密,然而建立SSL连接需要占用大量的系统资源,所以还需要采用SSL加速的技术。有很多第三方厂商开发的SSL加速卡产品是不错的选择,这些产品价格不贵,而且由于Web服务器的SSL 密钥通常存在卡上,可以避免非法入侵者从网站上窃取SSL密钥。
由于Internet/Intranet应用的特点,Web服务器的安全性同样是一个关键的问题。Web服务器的安全性有两个层次,一是数据流的安全,防止被第三方看到或恶意修改;二是内容的安全,即只有经过授权和通过认证的用户才能看和修改信息。
我们前面提到过,由“https”打头的URL利用SSL(现在所说的Tranport Level Security——TLS)算法,这种算法的基本原理是在Web服务器和Web浏览器之间建立安全的、加密的连接。这种情况下,SSL保护的是两种数据,一是发向Web服务器的数据,例如用户的姓名和信用卡密码;二是从Web服务器检索的秘密的数据,例如拍卖网站上向用户传送的价格信息等。授权和认证是也是Web服务器常用的安全技术,实际工作时,Web服务器会向Web浏览器发送一个信息询问用户的名字和密码并让用户填写,以此确认用户的正确身份。



相关教程