以中山大学镜像站为例谈如何利用开源来搭建镜像网站

所属分类: 网站运营 / 建站经验 阅读数: 154
收藏 0 赞 0 分享

基本流程
服务器&带宽&存储
同步源选择 ,架构选择
提供的服务:ftp | http | rsync 3.官网获取同步方法或工具,源列表(选择上游源)
配置同步工具
定时同步 (crontable)
备份工作,监控与报警,日常维护,优化
文档编写(Wiki),Submit MirrorsList
其他


0/8.服务器&带宽&存储
服务器: Linux ,maybe windows ?..orz
带宽: 越大越好(上行带宽太小无法提供更好的服务,下行太小无法及时同步完整(按网络情况分时段同步,同时尽量避开负载高峰))。 如果要对外服务,需要一个公网IP,有域名更好。
储存: 越大越好(如果是对外提供大量服务,家用的硬盘估计撑不了一年)。可考虑用SSD作为cache。


1/8.同步源选择 ,架构选择
同步源选择:

按需求选择需要的发行版,稳定性第一,多样性第二,满足需求即可。同时也要注意”性价比“(自用镜像无需考虑),例如 OpenBSD之类的性价比可能很低 ,消耗大量的同步流量和磁盘空间可能性价比不是很大,同时例如大学中的镜像站需要网络中心的支持,所以需要考虑到校内用户的支持和热度(学生支持度不 够,nc的支持可能也会下降),同时校内有一定热度才好传承,所以如果添加类似Ubuntu的发行版”性价比“会很高。 慎重选择上线的发行版(自身资源估计),上线尽量保持稳定。切勿随意更换服务。注意预留足够空间!

感谢中大IGI师兄以上给出的建议。推荐:《搭建linux mirror镜像》

架构选择:

一个发行版可能保护多种架构,(例如debian :alpha、amd64、arm、armel、hppa、hurd-i386、i386、ia64、m68k、mipsel、mips、powerpc、s390、sh and sparc,source,debian现有oldstable,stable ,testing,unstable,还有experimental版本),所以需要按需求选择需要同步的架构(因为磁盘空间不是无限的),一般来说就选择i386,amd64,外加source。

2/8.提供的服务:ftp | http | rsync
FTP:vsftpd ?还有很多,不太了解,囧。
HTTP: Webserver建议选择nginx或lighttpd,因为镜像包含大量的静态文件,这两者据说比Apache更有优势, 记得cn99挂掉后,将Apache换到nginx了? 建议 :nginx, lighttpd
Rsync:为下游提供,例如清华,中科大有开放某些发行版,国内提供rsync的镜像站不多,主要是提供rsync会有很高的IO负载,一般承受不起。如果有意愿提供rsync,google即可。


3/8.官网获取同步方法或工具,源列表(选择上游源)
同步方法或工具: 一般就是Rsync,然后从上游拉东西,可以自己写脚本,也可以用官方提供的工具,例如debian的ftpsync等。 切勿使用wget 等工具!不能保证文件link等属性,也无法做到增量同步,浪费资源!

清华的同步脚本:http://git.tuna.tsinghua.edu.cn/
北交Ideal的Mirror工具:https://github.com/ideal/mirror
(感谢ideal曾经提供的帮助,有意愿搭建镜像站的同学遇到 问题可在Twitter上找到他)Rubygems,PyPI,npm也是同样找寻或自己编写同步脚本后工具,或做反向代理。除了主动拉的,还有是官方主镜像推送到官方其他镜像,例如ArchlinuxARM。
ubuntu还有个同步工具 apt-mirror
上游源:

上发行版官网获取MirrorsList,然后找寻提供rsync服务的镜像,选择上游源,一般选择国内,日本,新加坡,台湾等亚太地区的源。 注意:官方rsync可能只对指定IP开放(负载问题)

4/8.配置同步工具
自己写同步脚本 :
失败邮件报警,同步锁控制,两步同步,其他rsync参数。
Rsync教程:读 igi的同步脚本: http://www.igigo.net/archives/65
使用同步工具:
清华的同步脚本:http://git.tuna.tsinghua.edu.cn/
北交Ideal的Mirror工具:https://github.com/ideal/mirror/
PyPI,Rubygems,npm:

读Rubygems和PyPI同步简单教程 : http://fangpeishi.com/post/da-jian-pypiji-rubygemsjing-xiang
读npm同步教程 :http://maskray.me/blog/2012-11-21-tuna-npm-mirror
注意: 添加同步锁,debian系需要两步同步(先同步pool目录)。

5/8.定时同步 (crontable)
定时同步: 把写好的cron脚本丢进 /etc/cron.d/ 《定时自动任务crontab使用教程》 注意:

/etc/cron.d the file names must conform to the filename requirements of run-parts: they must be entirely made up of let‐ters, digits and can only contain the special signs underscores (‘‘) and hyphens (‘-’). Any file that does not conform to theserequirements will not be executed by run-parts. For example, any file containing dots will be ignored. This is done to prevent cron from running any of the files that are left by the Debian package management system when han‐ dling files in /etc/cron.d/ as configuration files (i.e. files ending in .dpkg-dist, .dpkg-orig, and .dpkg-new). (特殊字符只可以使用’‘和’-’,另外以’.’开头的文件会被忽略)
crontab脚本中注意path的配置,例如使用rubygems的同步工具碰到rake abort等问题。


6/8.备份工作,监控与报警,日常维护,优化
备份:

当配置文件发生变化时候利用脚本将其备份到Dropbox. 监控与报警:

用awk等工具对同步日记进行分析。
配置邮件服务程序,例如exim4,在之前的脚本中添加出现异常时候发邮件。(移动139邮箱有短信通知功能)。
部署监控程序,例如MUNIN,对磁盘情况,网络情况,负载情况等进行监控,以图表的形式直观呈现出来。
日常维护:

当出现同步异常失败时(例如:上游down掉了,和上游的网络异常了,磁盘异常等等),需要更换上游或者其他方法。

优化: 主要是针对镜像站大量的静态文件进行的优化.以及观察监控对流量和负载进行合理分配。

7/8.文档编写(Wiki),Submit MirrorsList
文档编写: 一个是为了将经验积累,方便传承,同时也是为了方便其他搭建镜像站的朋友。例如建个wiki。

Submit your mirror to mirrorslist:

当镜像站足够稳定时,可考虑提交到官方mirrorslist,让更多的朋友知道,有小小的成就感也容易鼓励自身和传承。内网的镜像可在内部交流平台公开分享。
若是校园镜像站需要注意宣传,以得到更多师生的支持,同时方便传承。


8/8.其他
如果是在大学内要搭建一个镜像站,需要获取网络中心的支持,可能需要:

一颗“耐”心;
注意传承问题 (校内热度将影响nc对镜像站的支持程度,做好文档,发展好师弟师妹,如果有个Linux协会啥的平台组织最好不过了);
找靠谱老师支持(镜像快死掉了的时候,老师可能能救活它),熟悉nc里的老师或领导(解决问题更方便),记得镜像站要帮助宣传nc,记得感谢提供帮助的同学,老师和组织;
稳定为先。

更多精彩内容其他人还在看

简单的5步 只需要一个小时就能建好手机站

下面捧上一小时建手机站的教程,希望能解救那些在网站建设的水深火热中挣扎的小伙伴,简单的5步,只需要一个小时就能建好手机站,一起来看看吧
收藏 0 赞 0 分享

如何利用百度文库霸屏百度首页?利用百度文库霸屏百度首页的三大技巧详解

随着百度的算法不断变化,SEO优化技巧也要不断的更新,那么如何快速的将网站的信息排名在用户搜索结果的首页,即如何将网站的信息霸屏百度首页?本文将提供利用百度文库霸屏百度首页的三大技巧详解供大家了解,希望对大家有所帮助和启发
收藏 0 赞 0 分享

社交类网站的信息发布与获取方面的设计经验总结

发状态和浏览状态是SNS的主要功能,本文中将罗列一些典型的社交网络巨头的前端相关设计,来整理社交类网站的信息发布与获取方面的设计经验总结
收藏 0 赞 0 分享

什么是网站跳出率?降低网站跳出率的6种改善方案

刚做SEO,你可能不知道什么是跳出率,网站跳出率高对网站是一个致命的打击,那么如何降低网站的跳出率呢?如何降低跳出率提高转化率?本文将提供降低网站跳出率的6种改善方案供大家了解,希望对大家有所帮助和启发
收藏 0 赞 0 分享

图文讲解在StartSSL上申请免费SSL证书的流程

现在网站的HTTPS化已经成了一个普遍的趋势,那么相应SSL证书的获取也成了建站过程中必不可少的部分,这里我们就图文讲解在StartSSL上申请免费SSL证书的流程:
收藏 0 赞 0 分享

新手站长如何选择一个更具有性价比的建站系统?

虽然现在建设网站开始变得简单,只需要使用一个建站系统就可以轻松建设。但是对于新手站长们来说,他们建设一个网站的最终目的还是为了赢得一定的利润。下面我们就来谈谈新手站长如何选择一个更具有性价比的建站系统,有需要的朋友可以参考一下
收藏 0 赞 0 分享

美国服务器为什么备受国内站长的青睐?

调查数据显示后,国内站长中约有两百多万的网站存放在美国服务器,美国服务器为什么会怎么受欢迎,下面我们来了解一下吧
收藏 0 赞 0 分享

仅需五步轻松建立一个三站合一的网站的技巧

现在网站不止要做pc端的,如果要跟上互联网的步伐还需要做手机端和微信网站,该怎么建立这个三端网站呢?下面我们就来看看仅需五步轻松建立一个三站合一的网站的技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

日本免费空间Xdomain的注册及使用教程

这里为大家分享一下日本免费空间Xdomain的注册及使用教程,Xdomain.ne.jp空间顶部会有小小的广告,经过测试,该广告去掉比较容易,在演示搭建WordPress之后会为大家讲到
收藏 0 赞 0 分享

一波低价日本VPS主机乱谈与推荐

日本主机在国内需求还是比较高的,不仅理论上的地理位置近能带来较低的国内访问延迟,而且很多日本网站也都需要日本IP才能访问,用来搭建代理十分不错,这里我们就来一波低价日本VPS主机乱谈与推荐
收藏 0 赞 0 分享
查看更多