您好,登錄后才能下訂單哦!
這篇文章主要介紹“利用開源來搭建鏡像網站的教程”,在日常操作中,相信很多人在利用開源來搭建鏡像網站的教程問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”利用開源來搭建鏡像網站的教程”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
基本流程
服務器&帶寬&存儲
同步源選擇 ,架構選擇
提供的服務: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,記得感謝提供幫助的同學,老師和組織;
穩定為先。
到此,關于“利用開源來搭建鏡像網站的教程”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。