天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧网络 >> 正文

多路并用 给我的网站提提速

2008-3-12家用电脑佚名

   电信网通的南北互通问题同样给网站站长们带来了麻烦:如果你的网站处于电信的线路上,那么网通的用户访问网站时必然很慢,反之亦然。这势必会造成用户由于访问困难而流失。设想一下,当用户点击网站的网页后,网页却迟迟不能出现,他们很可能会认为网站出现了故障,不得不遗憾地离开你的网站。对于每天起早摸黑,依靠各种手段提高自己网站访问量的站长们来说,这是多么令人痛心疾首啊!不过要解决此问题,除了期待南北早日实现互联互通外,还有许多相应的技术手段。在这里,我们就提供一些切实可用的思路,与诸君分享。
  
一、选择合适的服务器托管方案
  
方案1:一台服务器,使用双线路


 
图1 单服务器多线路示意图


  这种方式是指托管在机房中的单台服务器同时接入网通和电信两条线路,这样服务器就能够通过不同的线路,同时对网通和电信用户提供服务。
  
  优点:单服务器不存在数据同步问题,且能降低硬件投入与维护的费用。
  
  缺点:托管费或虚拟主机使用费会大幅上升,当然总费用并不算高。
  
  实现方式:首先需要将服务器托管在双线路机房,目前的双线路机房一般有两种,一种是双线路双IP方案,另一种是双线路单IP方案。双线路双IP方案较为简单,就是把两种线路接入机房,给同一服务器分配两个IP,然后进行相关处理,让用户通过不同的线路访问网站;双线路单IP方案则需要借助于负载均衡设备(一般为硬件设备),让拥有双线路的服务器对外看来只有一个IP地址。

  对我们的站长来说,使用双线路单IP方案相对较好,因为一般情况下,每个域名只能指向一个IP地址。使用双线路单IP方案,用户在使用域名访问网站时,负载均衡设备会自动选择相对快速的线路为用户提供服务。若是采用双线路双IP方案,由于同一域名不能指向两个IP,因此我们必须为每个IP建立一个子域,相当于建立了网通和电信两条不同线路的镜像(外在表现形式与双线路多服务器镜像相同),或者采用智能DNS轮询,由智能DNS服务器来自动选择线路,反而又增加了麻烦。


图2 一个典型的双线路镜像网站引导页

  
图3 在域名DNS管理中添加多个A记录,实现线路镜像


方案2:多台服务器,使用多线路

图4 多服务器多线路示意图


  多服务器多线路是指分别在网通和电信的机房托管主机,当然可以在不同的城市托管。设置网站时在网通和电信的线路上设置镜像以便访问者浏览。
  
  优点:适合访问量较大或者有特殊用途(如软件下载站)的网站。
  
  缺点:总费用较高,需要做数据同步。
  
  这种镜像站的表现形式与单服务器双线路方案中的双线路双IP方案外在表现形式相同,一般都在引导页或网站首页注明访问指向:电信镜像站、网通镜像站,由用户根据自己的线路选择相应的镜像。当然,我们也可以使用镜像自动选择脚本,从而自动选择对用户来说最快的镜像。与能够实现自动负载均衡的单服务器双IP方案相比,镜像的方法可能会造成初次访问时很慢,因为网站的默认页只能指向电信或网通线路其中之一,需进入预览页后用户才有提示去访问相应的分站镜像,不过我们可以通过下面的智能DNS来解决这个问题。

小技巧:镜像自动选择脚本
  
  制作好引导页或网站首页后,在中间的部分插入以下代码:
<script  type="text/javascript">
  i=1
  var autourl=new Array()
  autourl[1]="http://www.*****.com"
  autourl[2]="http://cnc.*****.com"
  function auto(url){
  if(i){i=0;top.location=url}
  }
  function run(){
  for(var i=1;i<autourl.length;i++) 
   document.write("<img src='"+autourl[i]+"' width=1 height=1 onerror=auto('"+autourl[i]+"')>")
  }
  run()
</script>

  其中,autourl[1]、autourl[2]为镜像的网址,你还可以根据需要添加autourl[3]、autourl[4]……本例中的www.*****.com放在了电信线路上,cnc.*****.com放在了网通线路上。  

二、数据同步的实现方式谈
  
  实际上,双线路多服务器镜像最大的问题是数据的同步。虽然从技术上来说,实现多个镜像服务器之间的同步并不是什么难事,但多个镜像服务器之间毕竟是通过网络连接在一起,在文件的同步上必然会存在延迟。因此,我们需要采取不同的同步镜像策略来减少延迟给网站带来的影响。综合来说,大致有以下几种策略:
  
1.同步镜像访问量大的文件
  
  此方式多见于软件下载站。由于软件下载流量巨大,软件下载站一般都会配备多个镜像服务器,放置提供下载的文件。这些镜像服务器位于多种线路上,不仅能够让来自于不同地域的访客就近获取要下载的软件,还实现了一定程度的冗余,解决了单台服务器故障时造成的断链问题。

图5 软件下载站的多个镜像下载链接


  具体实现上,通常采用其中的一台服务器作为主服务器(池服务器),等文件到位后,其它服务器通过相关工具或脚本自动或人工手动的读取主服务器上的文件,实现同步镜像。
  
  这种镜像策略只是加速了下载站软件的下载速度,对下载站本身并不起作用,若是想同时为下载站的网页提供网通和电信镜像,采用下面介绍的整站同步镜像或镜像远程调用同一数据库即可。
  
2.整站同步镜像
  
  顾名思义,就是实现站点各个镜像间的所有数据同步。同步的策略有两种,一种是用一台机器做主服务器,其它做镜像服务器,当用户访问的时候,可以直接读取主服务器或者镜像服务器的数据,当需要写数据的时候,通过镜像服务器传送数据直接写到主服务器上;另一种是不设主服务器,全部镜像的数据都同步,用户可访问任一镜像,当需要写数据的时候,写到正在访问的服务器上,然后数据再传输到其它服务器。
  
  这两种策略各有优势,第一种相对简单,但主服务器瘫痪后网站就会出现问题;第二种更为复杂,但可实现镜像冗余,保证网站提供不间断的服务。
  
  不过由于各个镜像服务器间并不一定拥有足够的带宽,这种整站同步镜像的方式很容易造成数据同步的延迟。在静态内容居多的站点上,这种延迟不会造成太大影响,但若是网站动态应用居多,譬如论坛,数据库同步的延迟将是致命的,因此,我们采用另一种策略实现论坛等动态应用的镜像。

3.镜像远程调用同一数据库
  
  这种策略多用于论坛等动态网站,所有的镜像都通过远程方式调用单一数据库服务器上的数据,网页程序、论坛附件、图片等静态资源,或者对实时性要求不是很高的资源,则通过工具,实现各镜像服务器间的同步。此方式规避了数据库同步的问题,不过相比本地调用,远程调用的效率和速度较慢,特别是在数据库服务器位于单一线路之上时。所以为了加快网站的访问速度,最好将数据库服务器放置在双线路机房。
  
  提示:要想使MySQL数据库支持远程调用,只需为相应的数据库增加可连接的Host为“%”,并在网站程序的配置文件修改数据库连接Host为数据库所在服务器的IP地址即可。
  
  上述几种镜像策略各有优缺点,具体采用哪种,要根据网站的规模和负载,以及要达成的目的来决定。镜像过程中,使用的软件通常是rsync、Mirror、SecondCopy、Smartsync Pro、Web Synchronizer、网络传神等等;数据库方面,MySQL、SQL Server、Oracle等,一般自带有复制和镜像等功能,更为安全可靠。而为了保证同步镜像在传输过程中的安全性,我们最好采用SSH/SCP等方式来传输文件。这方面的技术资料,我们可以参考http://rsync.samba.org和http://www.sunsite.org.uk/packages/mirror。
  
三、智能DNS解析,把域名统一起来

图6 通过智能DNS解析统一域名


  不管是单服务器多线路方案,还是双线路多服务器镜像,都存在一个问题,就是各个镜像线路的域名不统一。用户不清楚自己到底应访问哪个镜像才最快,并且引导页只能选择放置在某条相对快速的线路上,在用户第一次进入时,很容易因引导页速度太慢而放弃继续访问的兴趣。面对这一问题,便产生了智能DNS解析这一应对之策。

  简单的说,智能DNS解析就是网站域名的DNS服务器能够根据公网的DNS,智能判断用户的来路,然后根据此把网站的域名解析为不同的IP,使用户通过同一域名就能以最快方式访问到网站上。
  
  对网站的访问者来说,输入网站域名www.*****.com或通过搜索引擎进入时,智能DNS解析会自动将其分配到最快的镜像线路上,用户所访问的网址并没有发生任何变更,他浑然不觉自己是在访问网站的某一个镜像。而与镜像自动选择脚本相比,智能DNS解析的线路速度判断更为准确。实现智能DNS解析可用的方法总结起来有以下方式:
  
  1.购买支持智能DNS解析功能的服务
  
  2.自己配置智能DNS解析服务器(多用类Unix系统下的Bind9实现)
  
  3.使用免费的智能DNS解析服务
  
  对大多数个人站长来说,1和3较为现实,只有规模较大的网站,或者有特殊应用的网站,才会自己配置智能DNS解析服务器。这里向大家推荐一个免费的网通电信智能DNS——DNSPOD,依靠它,站长朋友们可以快速实现多条镜像线路的智能DNS解析。
  
  DNSPOD的官方网址为http://www.dnspod.com,拥有双线路的站长朋友们不妨一试。

图7 使用DNSPOD实现智能DNS解析


  以上我们介绍了三种应对南北互通难题的技术手段,其实可以采用的方法还有许多,如硬件负载均衡、地址转换网关、VPN通道代理(统一加速器网站应用版就是采用此方法)、Squid反向代理、CDN(互联网内容分布网络)解决方案等等。不过每种方法都会带来成本的大规模增加,因此对网站站长来说,如何根据自己网站的规模和设备情况,规划出适合自己的南北互通解决方案,才是重中之重。

欢迎访问最专业的网吧论坛,无盘论坛,网吧经营,网咖管理,网吧专业论坛https://bbs.txwb.com

关注天下网吧微信,了解网吧网咖经营管理,安装维护:


本文来源:家用电脑 作者:佚名

声明
本文来源地址:0
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系Email:support@txwb.com.,本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行