如何快速搭建一个镜像源

引言

其实不少开源镜像站给出了他们的开源代码,例如清华大学镜像管理器tunasync中科大镜像Docker
当时思考了很久,没有使用他们的代码,主要是认为,没什么必要,做一个简单的源没必要那么复杂,于是自己仿照着写了个Demo

实现

Github-SZUmirrors
暂时来说,我们使用的仓库只有少部分几个,同步方式较为单一,pypi为bandersnatch同步,其余系统软件源为rsync同步,这里借用了ustcmirror-images的rsync镜像,其实就是一句rsync指令和一些配置了
守护进程采用service实现,能够开机启动,也能查看状态


流程如下

service(守护进程)->python(分配进程)->docker(工作单元)

这里还需要加上一些前端,一些数据库之类的同步信息,不过作为demo已经足够了,剩下的需要的交给各位自己完善了
TODO:增加Docker反代

注意

  1. bandersnatch同步python源时可以做一些设置,减小同步的大小(Python全部库同步下来要15T),下文范例为只同步100G以下包
[plugins]
enabled =
    size_project_metadata
[size_project_metadata]
max_package_size = 100G
  1. 要进行nginx调优,以提高负载量
    Nginx调优可以参考此文档
    具体可以进行百度,唯一难以解决的问题时https中tls握手造成的高负载和高延迟(响应速度慢)情况。
    下图为对比


    效率上有将近十倍的区别,延迟也显著提升,不过好在公布在外网的时候https握手可以由转发机实现,并且可以一次握手传输多个包(链接复用?)
  2. pypi可以给单独的域名指向pypi/web/simple方便访问,但是同时也要注意python只支持https形式访问
    虽然其他软件源http也行,但是https还是安全不少,性能却跟不上,也是恨头疼的一件事
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇