虚拟服务器实现方法(动态均衡)

间隙填充
正睿科技  发布时间:2008-02-29 17:49:48  浏览数:1499
  虚拟服务器:对外它是单一的入口,对内有很多台计算机为它服务.对使用它的人来说,它是一台机器,有单一的入口点.具体的实现技术包括两种:应用层的虚拟服务器,网络层的虚拟服务器.

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

  实现方式:利用apache的ProxyPass可以实现对虚拟服务器的配置.(httpd.conf中)

  如某公司的WWW服务器为http://www.abc.com/在httpd.conf中作如下设置:

  ProxyPass/saleshttp://192.168.0.1/

  ProxyPass/rdhttp://192.168.0.2/

  ProxyPass/headhttp://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

  2.ip层的虚拟服务器.它是利用ip层的反向masq来实现的.

  实现方式:通过对ip包头的目的地址的改写来实现的.linuxkernel2.2.x中带的ipportforward就是实现的方式.你需要一个管理工具来管理这个方式.此种方式也称为反向NAT.

  设置方法:

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

  2.利用ipmasqadm来设置ip_port_forward.

  ipmasqadm-Awww.abc.com:80-R192.168.0.1:80

  具体用法请参考man..这里不对.

  ipmasqadm-Awww.abc.com:80-R192.168.0.2:80

  3.设置ipchains

  ipchains-Aforward-jMASQ-s192.168.0.0/24

  ipchains-Aforward-jMASQ-d192.168.0.0/24

  4.OK..

  测试:

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

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

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

  这样,机器就可以扩充了.....你的www服务器负载太大,利用以上两种方式均可以实现.你的telnet服务器负载太大,可以用方法2实现.