原文地址:http://www.chinaunix.net/old_jh/45/558805.html
现在网络的规模越来越大,网络中服务器的负载也变得越来越重。例如:在公司的网络中安装了一台WEB服务器,用于向企业内部网中的用户提供服务,假如网络中有几千甚至上万个用户需要同时访问这台WEB服务器,那么这台服务器的性能将变得极差。 如何来解决这个问题呢?在Windows 2000 Advanced Server中提供有Load Banlance负载均衡服务可以解决这个问题,但该服务的设置较复杂。另外我们还可以通过DNS来实现负载均衡的功能。 Enable round robin 启用循环 为了减轻某台服务器的负载,我们可以在网络中安装多台服务器。例如,原来网络中只有一台X235 的WEB服务器,其主机名为www.test.com,IP地址为192.168.1.100。为了减轻这台WEB服务器的负载,我们可以在网络中安装多台X235来提供WEB服务,并保证每台WEB服务器的内容都是一致的。如果可以实现让客户端分别访问不同的WEB服务器,这样就达到了分担负载的目的。那么如何让客户端分别向不同的WEB服务器访问呢?这就要用到DNS服务所提供的round robin功能。
秋意正浓 回复于:2005-06-08 23:42:22 我们可以按如下步骤操作: 在Windows200中打开管理工具中的DNS管理器。 在DNS管理其中,用鼠标右键点击该DNS服务器图标,在弹出的菜单中选择Property属性菜单。 在弹出的窗口中,选择Advanced选项卡。确保Enable round robin选项是处于被选中的状态。 点击OK关闭该窗口。 当设定好Round roubin后,接下来需要在DNS的区域(Zone)中添加主机记录: 打开管理工具中的DNS管理器。 用鼠标右键点击将要创建记录的区域,在弹出的菜单中选择New host新建主机记录。然后依照向导提示输入必要的信息。 主机名 IP地址 www 192.168.1.200 www 192.168.1.201 www 192.168.1.202 当输入完所有主机的主机名与IP的对应关系后,你将看到类似于下图的窗口。
秋意正浓 回复于:2005-06-08 23:43:02 在这里我们注意到,添加的三条主机记录是同一个主机名对应着不同的IP。这些不同的IP即为网络中安装的多台WEB服务器的实际IP,他们对应着同一个主机名www.test.com。 这样当客户端们在浏览器的地址栏中输入:www.test.com去访问WEB服务器时,就会向DNS服务器发出名称解析请求。当DNS服务器收到第一个客户端的请求时,会把第一个IP 192.168.1.200响应给客户端,当第二个客户端要求解析时,服务器把第二个IP192.168.1.201响应给客户端,以此类推。通过这样的循环分配IP地址,就可以让不同的客户器访问不同的服务器,从而达到分担服务器的负载的功能。 Enable netmask ordering 启用子网优先 如果公司的网络是由多个子网构成的,为了使用户能够更有效地访问服务器中的资源,例如WEB服务器上的资源,我们可以在每个子网中都安装一台WEB服务器,这些WEB服务器保存的数据是完全一样的并且都使用同一个主机名,例如:www.test.com。那么如何让用户在其浏览器的地址栏中输入主机名www.test.com时,访问的是本子网的WEB服务器,而不是其他子网的web服务器呢?我们可以通过设置Enable netmask ordering 启用子网优先来实现这一功能。 想实现Enable netmask ordering 启用子网优先,我们可以按以下步骤操作: 打开管理工具中的DNS管理器。 在DNS管理其中,用鼠标右键点击该DNS服务器图标,在弹出的菜单中选择Properties属性菜单。 在弹出的窗口中,选择Advanced选项卡。确保Enable subnet ordering选项是处于被选中的状态。 点击OK关闭该窗口。 当设定好subnet ordering后,接下来需要在区域中添加主机记录: 打开管理工具中的DNS管理器。 用鼠标右键单击将要创建记录的区域,在弹出的菜单中选择New host新建主机记录。然后依照向导提示输入必要的信息。 例如: 主机名 IP地址 www 192.168.1.200 www 202.96.1.201 www 64.35.1.202 当输入完所有主机的主机名与IP的对应关系后,你将看到类似于下图的窗口。
秋意正浓 回复于:2005-06-08 23:43:46 这样我们在DNS服务器中添加了三条主机记录:同一个主机名对应着不同的IP。这些不同的IP即为不同子网中安装的WEB服务器的实际IP地址,他们对应着同一个主机名www.test.com。 这样当用户在其浏览器的地址栏中输入:www.test.com去访问该WEB服务器时,该客户端就会向DNS服务器发出名称解析请求。作为DNS服务器收到客户端的查询请求后,将比较客户端的IP地址,与它所请求的主机名所对应的IP地址中的哪一个在同一子网中,然后将这个IP (与客户端在同一子网中的IP地址) 响应给客户端。这样就可以实现客户端访问的总是本子网中的服务器, 把服务器的访问负载分摊到了各个子网的服务器中,并且减少了跨子网的网络流量。 gunguymadman 回复于:2005-06-09 18:16:17 好 学习学习 。。。 nopalh 回复于:2005-06-10 12:24:01 好东西~ 继续学习 hope365 回复于:2005-06-10 13:48:16 那么网站要更新的话是不是需要多台机器都要更新啊,也就是把在一台机器上更新的内容,在复制到其他web服务器上,是这样吗 秋意正浓 回复于:2005-06-10 21:50:39 引用:原帖由 "hope365"]那么网站要更新的话是不是需要多台机器都要更新啊,也就是把在一台机器上更新的内容,在复制到其他web服务器上,是这样吗 发表: 是的。 更新一台,然后通过软件同步一下。 纳兰婷 回复于:2005-06-10 22:30:46 原创吗?8错,学习ING。。。 秋意正浓 回复于:2005-06-11 00:35:11 引用:原帖由 "纳兰婷"]原创吗?8错,学习ING。。。 发表: 做试验而已。 dudo 回复于:2005-06-11 10:53:07 收藏~~~ ん淚及長空ぼ 回复于:2005-06-12 22:06:29 很好~~要学习!! 谢谢~~ KindGeorge 回复于:2005-06-13 08:51:25 引用:hope365 写到: 那么网站要更新的话是不是需要多台机器都要更新啊,也就是把在一台机器上更新的内容,在复制到其他web服务器上,是这样吗 引用:是的。 更新一台,然后通过软件同步一下。 既然服务那么繁忙,那么数据也一定是非常频繁的读写,那么几个服务器之间实时同步和互相备份一定是非常必要和重要的,可以共享一下应该怎么处理才可以实现"实时同步和互相备份"功能吗? 因为光有负载平衡而没有数据同步的方案不是太好的.虚心向大家请教. 另谁linux下的方法呢? aiwowo 回复于:2005-06-14 00:07:18 再问一下,如果做了上述的设置后,在使用中,如何就能体现出Web访问时的负载均衡呢? radarwave 回复于:2005-06-14 16:33:40 引用:原帖由 "KindGeorge" 发表: 既然服务那么繁忙,那么数据也一定是非常频繁的读写,那么几个服务器之间实时同步和互相备份一定是非常必要和重要的,可以共享一下应该怎么处理才可以实现"实时同步和互相备份"功能吗? 因为光有负载平衡而没有数据?......... rsync 试试这个吧,很好用的 但是我有个疑问,比如我2台服务性能不同,占用带宽不同,我想让用户更多的访问第一台服务器 可不可以写成 www 192.168.0.2 www 192.168.0.2 www 192.168.0.3 这样让第一台服务器的浏览次数是第二台的2倍? killua 回复于:2005-06-15 11:14:05 linux 下的 bind view也可以 gowto 回复于:2005-06-19 20:08:40 呵呵,那sina.com sohu.com是不是就是像你说的这么做的啊?? scrate 回复于:2005-06-20 13:31:04 这和硬件有关系嘛? zmcc135 回复于:2005-06-23 13:03:43 引用:原帖由 "scrate"]这和硬件有关系嘛? 发表: 如上所说,这属于软件的负载均衡,不是硬件技术。 另外: 1、是否有Linux/Unix下的介绍? 2、RoundRobin就是轮流分配吧,是否还有加权算法可用,就像Proxy配置中会用到的 3、此外,假设2台服务器按所说的进行配置,在其中一台关机或应用Crash的情况下,如未及时干预,是否有50%的访问仍会被导向这台不可访问的机器?DN Server是否可配置探测功能,就像许多商用的“智能DNS”那样? jianglinchun 回复于:2005-06-27 20:59:17 实际上这种负载均衡技术叫做DNS轮询, 也就是DNS服务器器轮流将对应的DNS请求轮循影射到对应的IP地址。 如果还需要更强大的负载均衡方案,就要用专门的负载均衡的硬件设备了。 只要会配置linux的DNS服务的,我想在linux下配置一样,这是DNS的所支持的,而非某种OS所特有。 strongzzj 回复于:2005-06-30 11:29:37 如果用这种方法做SMTP服务器,那会很好. 但做WEB的话,数据同步就非常重要了. 至少到现在,本人还没有见过高效的同类软件, peersync几千元一套,但用起来也不觉得怎样好,有点名过其实. 守夜人 回复于:2005-07-03 12:44:04 对,现在讲负载的不少,但真正需要的是同步,我现在是用NFS做的,一台服务器专门做成raid(NFS)存储服务器,同步软件在那种交互环境下不好用如BBS等 还有一个问题,就是当一台服务器出错时,如果DNS没有将其删除,也会有问题 gunguymadman 回复于:2005-07-03 16:49:17 说的越多 就越靠近cluster gaya 回复于:2005-07-05 11:16:40 很有用 bluepigeon 回复于:2005-07-19 11:29:32 非常不错,支持,我要学习 panbs 回复于:2005-07-21 21:26:48 我顶!好好学习,天天上网 ilwxfe 回复于:2005-07-22 08:57:12 谁能说说LINUX下怎么实现的 ?? jackylau 回复于:2005-12-29 08:59:28 最最关键的数据实时同步,其实做负载均衡很简单.不知道哪们有更好的方案不? lihangel 回复于:2006-06-05 22:25:33 真的能实现负载均衡吗? 会不会出现这样的情况,每次当我访问WWW的时候,DNS返给我的IP都是第一条A记录,即192.168.1.200 只有当192.168.1.200当掉后,才会解析到192.168.1.201 前两个都当掉后,最后解析成192.168.1.202 linux_admin 回复于:2007-03-22 10:00:22 写的不错,加十分。 其实说白了,就是dns轮询的原理,就是还差点实现数据同步的功能。 如果网站都是静态的供别人访问的采用这种方法还行,但是如果牵涉到动态的有数据库的采用这个就不奏效了。 谁有这方面经验的指点下。 flb_2001 回复于:2008-09-04 10:30:19 DNS管理器就是DNS服务器上的吗? 也就是说你的所有这些配置都是在DNS服务器上做的吗? yuhuohu 回复于:2008-09-24 00:16:17 一个小问题: 如何判断客户机的IP和WEB服务器的IP是同一子网?根据传统的ABC类来判断吗?还是有其他的文件定义子网掩码 flb_2001 回复于:2008-09-24 13:52:33 怎样保证保证每台WEB服务器的内容都是一致的 yuhuohu 回复于:2008-09-24 17:36:54 在你的楼上有人答复过这个问题 lucas_lin 回复于:2009-07-24 12:07:50 load balance is a very important feature of DNS. 前卫主义 回复于:2009-07-27 16:48:04 -------------------- |
||||||||||||
原文链接:http://bbs.chinaunix.net/viewthread.php?tid=558805 转载请注明作者名及原文出处 |