关于开源软件镜像联盟(技术篇)

请先阅读:关于开源软件镜像联盟(非技术篇),谢谢

一、DNS or 301?

Update: 之前我对DNS的CNAME理解错误,现在更正。参考文献:https://tools.ietf.org/html/rfc3568

DNS方案(如果说得不对欢迎拍砖):

  1. 每个镜像分配一个二级域名,以便分别调度;NS记录设置为主站
  2. 用户从运营商DNS查询IP
  3. 主站根据来源IP(运营商DNS的IP)返回一个或多个镜像节点的IP地址
  4. 运营商DNS把这个IP返回给用户,同时缓存一定期限
  5. 用户与镜像节点建立连接,进行下载

301方案:

  1. 域名A记录解析到主站
  2. 用户与主站建立连接,发起HTTP请求
  3. 主站根据用户来源IP返回HTTP 301状态,跳转到一个镜像节点
  4. 用户与这个镜像节点建立连接,进行下载

继续阅读“关于开源软件镜像联盟(技术篇)”

关于开源软件镜像联盟(非技术篇)

Terminology: (好蛋疼啊,感觉挺别扭的)

  • 镜像:Ubuntu, CPAN, PyPi之类的
  • 镜像站:一个高校的开源镜像站,每个镜像站做了若干镜像
  • (镜像)节点:同时做了一个镜像的各镜像站

镜像联盟维护者:

仿照Debian的开发模式,镜像联盟维护者可以分为Mirrors Maintainer和Mirrors Developer。Mirrors Developer是拥有镜像联盟主站维护权限和决策投票权的核心开发人员;参与镜像联盟开发、镜像维护的均可申请成为Mirrors Maintainer。

继续阅读“关于开源软件镜像联盟(非技术篇)”