企业网站服务器负载均衡技术

news/2024/5/13 22:40:51/文章来源:https://blog.csdn.net/JackieCong/article/details/1481001
Internet的快速增长使网络服务器,特别是Web服务器,面对的访问者数量快速增加,网络服务器需要具备提供大量并发访问服务的能力。例如sohu每天会收到数千百万次的访问请求,因此对于提供大负载Web服务的服务器来讲,CPU、I/O处理能力很快会成为瓶颈。

  负载均衡的思路下多台服务器为对称方式,每台服务器都具备等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。然后通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器都独立回应客户机的请求。由于建立内容完全一致的Web服务器并不复杂,可以使用服务器同步更新或者共享存储空间等方法来完成,因此负载均衡技术就成为建立一个高负载Web站点的关键性技术。下图为负载均衡原理图。



网站负载均衡策略

  1、基于特定服务器软件的负载均衡

  很多网络协议都支持“重定向”功能,例如在HTTP协议中支持Location指令,接收到这个指令的浏览器将自动重定向到Location指明的另一个URL上。由于发送Location指令比起执行服务请求,对Web服务器的负载要小的多,因此可以根据这个功能来设计一种负载均衡的服务器。

任何时候Web服务器认为自己负载较大的时候,它就不再直接发送回浏览器请求的网页,而是送回一个Location指令,让浏览器去服务器集群中的其他服务器上获得所需要的网页。

  在这种方式下,服务器本身必须支持这种功能,然而具体实现起来却有很多困难,例如一台服务器如何能保证它重定向过的服务器是比较空闲的,并且不会再次发送Location指令,Location指令和浏览器都没有这方面的支持能力,这样很容易在浏览器上形成一种死循环。

因此这种方式实际应用当中并不多见,使用这种方式实现的服务器集群软件也较少。有些特定情况下可以使用CGI(包括使用FastCGI或mod_perl扩展来改善性能)来模拟这种方式去分担负载,而Web服务器仍然保持简洁、高效的特性,此时避免Location循环的任务将由用户的CGI程序来承担。

2、基于DNS的负载均衡

  由于基于服务器软件的负载均衡需要改动软件,因此常常是得不偿失,负载均衡最好是在服务器软件之外来完成,这样才能利用现有服务器软件的种种优势。最早的负载均衡技术是通过DNS服务中的随机名字解析来实现的,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中的一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,他们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。

  例如如果希望使用三个Web服务器来回应对[url]www.ghq.net[/url]的HTTP请求,就可以设置该域的DNS服务器中关于该域的数据包括有与下面例子类似的结果:

  www1 IN A 192.168.1.1

  www2 IN A 192.168.1.2

  www3 IN A 192.168.1.3

  www IN CNAME www1

  www IN CNAME www2

  www IN CNAME www3

  此后外部的客户机就可能随机的得到对应www的不同地址,那么随后的HTTP请求也就发送给不同地址了。

  DNS负载均衡的优点是简单、易行,并且服务器可以位于互联网的任意位置上,当前使用在包括Yahoo在内的Web站点上。然而它也存在不少缺点,一个缺点是为了保证DNS数据及时更新,一般都要将DNS的刷新时间设置的较小,但太小就会造成太大的额外网络流量,并且更改了DNS数据之后也不能立即生效;第二点是DNS负载均衡无法得知服务器之间的差异,它不能做到为性能较好的服务器多分配请求,也不能了解到服务器的当前状态,甚至会出现客户请求集中在某一台服务器上的偶然情况。

3、反向代理负载均衡

  使用代理服务器可以将请求转发给内部的Web服务器,使用这种加速模式显然可以提升静态网页的访问速度。因此也可以考虑使用这种技术,让代理服务器将请求均匀转发给多台内部Web服务器之一上,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。

  实现这个反向代理能力并不能算是一个特别复杂的任务,但是在负载均衡中要求特别高的效率,这样实现起来就不是十分简单的了。每针对一次代理,代理服务器就必须打开两个连接,一个为对外的连接,一个为对内的连接,因此对于连接请求数量非常大的时候,代理服务器的负载也就非常之大了,在最后反向代理服务器会成为服务的瓶颈。

例如,使用Apache的mod_rproxy模块来实现负载均衡功能时,提供的并发连接数量受Apache本身的并发连接数量的限制。一般来讲,可以使用它来对连接数量不是特别大,但每次连接都需要消耗大量处理资源的站点进行负载均衡,例如搜寻。

  使用反向代理的好处是,可以将负载均衡和代理服务器的高速缓存技术结合在一起,提供有益的性能,具备额外的安全性,外部客户不能直接访问真实的服务器。并且实现起来可以实现较好的负载均衡策略,将负载可以非常均衡的分给内部服务器,不会出现负载集中到某个服务器的偶然现象。

4、基于NAT的负载均衡技术

  网络地址转换为在内部地址和外部地址之间进行转换,以便具备内部地址的计算机能访问外部网络,而当外部网络中的计算机访问地址转换网关拥有的某一外部地址时,地址转换网关能将其转发到一个映射的内部地址上。因此如果地址转换网关能将每个连接均匀转换为不同的内部服务器地址,此后外部网络中的计算机就各自与自己转换得到的地址上服务器进行通信,从而达到负载分担的目的。

  地址转换可以通过软件方式来实现,也可以通过硬件方式来实现。使用硬件方式进行操作一般称为交换,而当交换必须保存TCP连接信息的时候,这种针对OSI网络层的操作就被称为第四层交换。支持负载均衡的网络地址转换为第四层交换机的一种重要功能,由于它基于定制的硬件芯片,因此其性能非常优秀,很多交换机声称具备400MB-800MB的第四层交换能力。

  使用软件方式来实现基于网络地址转换的负载均衡则要实际的多,除了一些厂商提供的解决方法之外,更有效的方法是使用免费的自由软件来完成这项任务。其中包括Linux Virtual Server Project中的NAT实现方式,或者本文作者在FreeBSD下对natd的修订版本。一般来讲,使用这种软件方式来实现地址转换,中心负载均衡器存在带宽限制,在100MB的快速以太网条件下,能得到最快达80MB的带宽,然而在实际应用中,可能只有40MB-60MB的可用带宽。

5、扩展的负载均衡技术

  上面使用网络地址转换来实现负载分担,毫无疑问所有的网络连接都必须通过中心负载均衡器,那么如果负载特别大,以至于后台的服务器数量不再在是几台、十几台,而是上百台甚至更多,即便是使用性能优秀的硬件交换机也会遇到瓶颈。此时问题将转变为,如何将那么多台服务器分布到各个互联网的多个位置,分散网络负担。当然这可以通过综合使用DNS和NAT两种方法来实现,然而更好的方式是使用一种半中心的负载均衡方式。

  在这种半中心的负载均衡方式下,即当客户请求发送给负载均衡器的时候,中心负载均衡器将请求打包并发送给某个服务器,而服务器的回应请求不再返回给中心负载均衡器,而是直接返回给客户,因此中心负载均衡器只负责接受并转发请求,其网络负担就较小了。

  同样,这种方式的硬件实现方式也非常昂贵,但是会根据厂商的不同,具备不同的特殊功能,例如对SSL的支持等。

  由于这种方式比较复杂,因此实现起来比较困难,它的起点也很高,当前情况下网站并不需要这么大的处理能力。

  总之,我们比较上面的五种负载均衡方式,DNS最容易,也最常用,能够满足一般的需求。但如果需要进一步的管理和控制,可以选用反向代理方式或NAT方式,这两种之间进行选择主要依赖缓冲是不是很重要,最大的并发访问数量是多少等条件。而如果网站上对负载影响很厉害的CGI程序是由网站自己开发的,也可以考虑在程序中自己使用Location来支持负载均衡。半中心化的负载分担方式至少在国内当前的情况下还不需要。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_865319.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

门户网站运营工作全流程

值得大家关注的是,网站的运营(Operate)大家会跟网站的推广(Promotion)混同起来,实际上,网站的推广工作只是网站运营的一部分,除此之外,还有网站及栏目或活动的策划工作&a…

BUGKU 网站被黑

首先打开链接 我的金币要不够了我就先不打开了 然后打开之后我吗会发现用F12检查了之后也没有什么有用的信息 用bp抓包也没有 然后使用御剑去扫描一下使用第二个批量扫描后台 然后再这张图的添加上点添加将网址输在里面再点击选择PHP.txt 然后点击开始扫描就可以得出几个网…

网站根目录设置

转载于:https://www.cnblogs.com/hellowzd/p/4143314.html

WordPress小工具开发教程(网站公告)

WordPress小工具开发教程(网站公告) BY TIANQIXIN 2012 年 12 月 26 日 wordpress主题小工具,可以自由拖动到侧边栏,并在前台实现相应功能!一般自带的小工具功能有限,我们可以通过自己开发小工具来增强wor…

SEO之HTML优化:让你的网站HTML代码更符合SEO规范

摘要HTML优化是网站内部优化的重点,可能对SEO新手来说,容易忽略。符合搜索引擎习惯的HTML代码是极利于SEO的,可以让你的网站获得更好的搜索引擎排名。如何制作一个标准的HTML网页,如何做HTML优化,本文将为你详细阐述。…

MySQL在大型网站的应用架构演变

写在最前: 本文主要描述在网站的不同的并发访问量级下,Mysql架构的演变。 可扩展性 架构的可扩展性往往和并发是息息相关,没有并发的增长,也就没有必要做高可扩展性的架构,这里对可扩展性进行简单介绍一下&#x…

上传网站

上传网站 FlashFXP是一款功能强大的FXP/FTP软件,如果你使用其它ftp工具受到挫折,就改用这款好用的软件吧。FlashFXP使用简单,并且有汉化版。 本文介绍FlashFXP最基本的功能,设置站点,上传网站。 1.打开FlashFXP&…

ASP.NET遇到问题---onmouseover

Problem3: 下面红色部分出错: 提示: <% Page Language"VB" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat"server&q…

IIS网站迁移(二)

环境&#xff1a;原环境SERVER2008R2IIS7.0&#xff0c;新服务器环境SERVER2008R2IIS7.0 新服务器如何搭建IIS服务器请百度 网站资源数据自行备份和还原这里不描述 1、 备份和还原IIS环境相关配置 1.1备份应用程序池和站点 1.1.1、备份旧服务器“应用程序池”CMD命令行输入…

IIS网站迁移(三)

问题&#xff1a; 我有一个Windows Server 2003是运行IIS 6的几百个网站&#xff0c;我需要复制网站到Windows Server 2008服务器运行IIS 7.5。怎么复制迁移&#xff1f; Copy IIS 6 to IIS 7.5 Migrate a Web Site from IIS 6.0 to IIS 7 or above 解决方案&#xff1a; …

在本地怎样更换域名IP访问其他网站

TCP/IP的通讯协议 这部分简要介绍一下TCP/IP的内部结构&#xff0c;为讨论与互联网有关的安全问题打下基础。TCP/IP协议组之所以流行&#xff0c;部分原因是因为它可以用在各种各样的信道和底层协议&#xff08;例如T1和X.25、以太网以及RS-232串行接口&#xff09;之上。确切…

在Nginx用htpasswd对网站进行密码保护的设置方法

很多时候我们需要对一些网站进行密码保护&#xff0c;比如团队内部的站点、demo站点等等。这里所说的密码保护是服务器级的&#xff0c;并非网站应用层的注册登录那一套&#xff0c;而是利用服务器配置和htpasswd文件来实现访问的密码验证 最后的效果就类似&#xff08;不同浏览…

X64系统下IIS运行ASP网站HTTP500错误 【安装FoxMail Server时出现】

错误如上 解决办法 使用管理员模式运行CMD 输入cscript C:\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 true 回车即可解决 转载于:https://www.cnblogs.com/xdoudou/p/3235367.html

给IIS添加网站配置权限

1.新建一个网站&#xff0c;填好名字&#xff0c;路径和主机名端口等等 2.为网站添加一个用户 3.用户隶属于Guests&#xff0c;和IIS_IUSRS 4.把网站的完全控制权限赋给刚才的用户。 在网站右键&#xff0d;&#xff0d;编辑权限&#xff0d;&#xff0d;安全 或者在网站文件夹…

SSM团购网站(1):架构设计与技术选型

网站的功能模块设计 技术选型 需求分析 网站需求 首页分类/列表页详情页预售购买和支付个人信息及订单站内通知注册登录 管理后台需求 权限商品订单供应商地区图片处理 技术选型原则 平台依赖性可扩展性、可集成性技术稳定性文档及应用范围 技术陷阱 需求不清追求新技术…

SSM团购网站(2):数据表设计(暂时的,可能会重构)

先看功能模块&#xff1a; 前台相关表 deal&#xff1a;商品表 deal_category:商品分类 area&#xff1a;地区表 deal_detail:商品详情表 image_info:图片信息表 cart&#xff1a;购物车信息表 order_basic:订单的基本信息表 order_detail:订单的详细信息表 user:用户表 use…

SSM团购网站(3):Lombok的使用

Lombok是什么 Lombok是一个插件,能以简单的注解形式来简化java代码&#xff0c;提高开发人员的开发效率。例如开发中经常需要写的javabean&#xff0c;都需要花时间去添加相应的getter/setter&#xff0c;也许还要去写构造器、equals等方法&#xff0c;而且需要维护&#xff0…

SSM团购网站(4):网站首页及公共技术点

网站首页及公共技术点 首页应该具有的功能&#xff1a; 首页的布局设计&#xff1a; 左上侧显示商品一二级分类及进入分类的链接主体区域内按分类推荐各8个商品&#xff08;每行四个&#xff0c;分两行&#xff09;每个商品显示摘要信息&#xff0c;点击可进入详情页 动态页…

Golang丨Java丨Python爬虫实战—Boss直聘网站数据抓取

我们分别通过Golang、Python、Java三门语言&#xff0c;分别实现对Boss直聘网站的招聘数据进行爬取。 首先打开Boss直聘网站&#xff1a; 然后我们在职位类型中输入Go或者Golang关键字&#xff1a; 然后我们可以看到一个列表&#xff0c;和Go语言相关的各种招聘职位&#xff0…

(转)谷歌浏览器ERR_UNSAFE_PORT问题,87端口限制导致的网站访问受限事故分析

在Linux docker上配置nginx时&#xff0c;随便映射了Linux主机的87端口&#xff0c;然后访问Linux 87端口时失败&#xff0c;浏览器马上返回不能访问 换成8081和其他的都可以访问&#xff0c;不是防火墙问题&#xff0c;然后找到这篇文章 谷歌浏览器ERR_UNSAFE_PORT问题&…