动态均衡的一种实现-虚拟服务器

(2001-10-10 14:46 )(网络小子 )( )
导读-- 动态均衡是解决单一服务器负荷太重,难以承受服务压力的有效方法。实现动态均衡的一种有效方法是使用虚拟服务器......
  动态均衡是解决单一服务器负荷太重,难以承受服务压力的有效方法。实现动态均衡的一种有效方法是使用虚拟服务器。虚拟服务器指:对外它是单一的入口,对内有很多台计算机为它服务的计算机群。对使用虚拟服务器的人来说,它是一台机器,有单一的入口点;而在服务负荷上,虚拟服务器却可以将系统符合近似均匀地分担到各台计算机上。虚拟服务器具体的实现技术包括两种:应用层的虚拟服务器和网络层的虚拟服务器。

一、 应用层的虚拟服务器

  应用层虚拟服务器是利用应用层的转发实现的,相当于一台代理服务器,这正是经常提到的虚拟服务器。

  实现方式:利用Apache的 ProxyPass 功能可以实现对虚拟服务器的配置(httpd.conf中) 如。某公司的WWW服务器为 http://www.abc.com/ 在httpd.conf中作如下设置:



  ProxyPass /sales http://192.168.0.1/
  ProxyPass /rd http://192.168.0.2/
  ProxyPass /head http://192.168.0.3/



  如上设置生效了以后,对http://www.abc.com/rd的访问会转到计算机http://192.168.0.2上来。对http://www.abc.com/head的访问会转到计算机http://192.168.0.2上来。客户不直接同 192.168.0.x交互,所有的请求都通过www.abc.com来转发。转发的过程如下:

  client (http://www.abc.com/sales) <--> www.abc.com <--> 192.168.0.1

二、 IP层的虚拟服务器

  IP层的虚拟服务器是利用IP层的反向masq来实现的。实现方式:通过对IP包头的目的地址的改写来实现的。linux kernel 2.2.x中带的IP port forward 就是实现的方式。你需要一个管理工具来管理这个方式。此种方式也称为反向NAT。

设置方法:

  1. 内核编译中选择 ip_port_forward(??)

  2. 利用ipmasqadm 来设置 ip_port_forward.
  ipmasqadm -A www.abc.com:80 -R 192.168.0.1:80

  3.设置ipchains

  ipchains -A forward -j MASQ -s 192.168.0.0/24
  ipchains -A forward -j MASQ -d 192.168.0.0/24


测试:

  1. 现在你访问http://www.abc.com/

  2. 你访问的IP包发到www.abc.com然后目标地址改为192.168.0.x, x为1或2可以由系统的负载平衡算法来选定。

  3. 处理完毕,请求包发回www.abc.com,然后在发回给客户。

三、 两种实现方式的分析比较

  应用层的虚拟服务器实现必须要通过一台服务器来实现服务的分发,在上面的例子中,这台服务器安装了Apache。如果负载很大的情况下,这台应用层分发计算机的分发负荷任务都已经很重了,可能使系统的性能下降很多。因此,应用层的虚拟服务器比较适用于负荷数量不多,但是单个任务很重的情况,例如搜索引擎工作。

  而IP层的虚拟服务器事实上通过路由器或者网关来实现的,这基本上并不添加整个系统应用上的负荷,因此比较适合担任负荷数量很大的负债均衡任务。
责编:
订阅新闻邮件) (推荐) (打印) (关闭页面) (至顶) (我对此感兴趣
相关文章
笔名:
请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。