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

所属分类: 网站运营 / 建站经验 阅读数: 133
收藏 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,记得感谢提供帮助的同学,老师和组织;
稳定为先。

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

医疗行业怎么做好网站建设?建站注意事项及经验

踏足互联网,医疗行业可以将自身优势资源整合到网站中去,为大家提供病理知识、在线咨询或者预约就诊服务等。那么如何做好医疗行业的网站建设呢?本期为大家分享一些在建站过程中需要注意的东西和建站经验,希望能给大家带来帮助
收藏 0 赞 0 分享

企业应该怎么策划自己的网站?规划网站注意事项总结

网站建设虽然是一个比较复杂的过程,包括网站策划、网页设计、程序开发、上传网页、发布网站等,那么企业应该怎么策划自己的网站?下面为大家介绍规划网站注意事项,来看看吧
收藏 0 赞 0 分享

大众点评网站的支付系统构建经验分享

大众点评网站的服务器端在迭代的同时保持了很好的扩展性和可用性,这里我们来看一下大众点评网站的支付系统构建经验分享,主要以大众点评的支付渠道网关系统为核心.
收藏 0 赞 0 分享

网易蜂巢的容器运维管理服务使用指南

网易蜂巢提供对Docker容器的警报和性能监控服务,通过图形化面板操作十分简洁,这里前提假设服务器端已经架设在容器中,那么接下来就让我们来看网易蜂巢的容器运维管理服务使用指南
收藏 0 赞 0 分享

为什么认为自助建站不适合SEO?自助建站工具搭建出来的网站对SEO的支持如何?

最近有一个做SEO优化朋友询问为什么自助建站做出来的网站排名很难做上去?自助建站工具搭建出来的网站真的适合SEO吗?本文将提供相关内容供大家了解,希望对大家有所帮助和启发
收藏 0 赞 0 分享

支持支付宝的高性价比美国VPS主机Pzea的购买及使用评测

Pzea一直是低价位VPS的人气之选,在美国三个大城市分别建有机房,且构建于KVM虚拟机之上,性能较为出众,接下来就为大家来分享一下这个支持支付宝的高性价比美国VPS主机Pzea的购买及使用评测
收藏 0 赞 0 分享

网站页面一定需要HTML静态化吗 实战说明静态化的必要性

很多刚开始运营网站的伙伴们都要知道网站内的页面需要进行URL优化吗?如设置静态化等,对此,本文就为大家解析一下网站静态化的必要性,有兴趣的朋友们可以了解下哦
收藏 0 赞 0 分享

移动端界面设计之尺寸基础知识学习

这篇文章主要为大家详细介绍了移动端界面设计之尺寸基础知识,通俗易懂的学习教程帮助大家了解关于移动端设计尺寸的相关知识,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

如何提高用户体验?优秀的用户体验需要遵守的十大准则

自己的网站做的很漂亮却依然没有排名,这是为什么呢?这个时候,你应该考虑你是否关注到用户体验?而如何提高用户体验又是你要考虑的问题了,本文将提供优秀的用户体验需要遵守的十大准则供大家了解,希望对大家有所帮助和启发
收藏 0 赞 0 分享

DoubleClick Ad Exchange Seller(adx) 为您的广告代码生成异步代码的方法

这篇文章主要介绍了DoubleClick Ad Exchange Seller(adx) 为您的广告代码生成异步代码的方法,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多