自己一直以來相搭建一個開源鏡像站,一方面可以了解搭建鏡像站的知識,一方面可以同步那些國内沒有的linux發行版軟體源,但是最主要的原因隻是為了好玩
我這個教程不是專業教程,但是要注意的是鏡像站是一個對I/O要求很高,網絡帶寬要求很高,磁盤占用量的站點,不然沒人用
安裝需要的軟體(nginx,rsync)
配置nginx
編寫同步腳本
安裝PCRE庫
下載下傳解壓
<code>wget https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz</code>
<code>tar -zxvf pcre-8.41.tar.gz</code>
<code>cd pcre-8.41</code>
編譯安裝
<code>./configure --prefix=/usr/local/pcre</code>
<code>make</code>
<code>make install</code>
安裝zlib
<code>wget http://zlib.net/zlib-1.2.11.tar.gz</code>
<code>tar -zxvf zlib-1.2.11.tar.gz</code>
<code>cd zlib-1.2.11</code>
<code>./configure --prefix=/usr/local/zlib</code>
安裝openssl庫
<code>wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz</code>
<code>tar -zxvf openssl-1.0.2l.tar.gz</code>
<code>cd openssl-1.0.2l</code>
<code>./config --prefix=/usr/local/openssl</code>
安裝nginx
<code>wget http://mirrors.sohu.com/nginx/nginx-1.12.1.tar.gz</code>
<code>tar -zxvf nginx-1.12.1.tar.gz</code>
<code>cd nginx-1.12.1</code>
<code>./configure --prefix=/usr/local/nginx --with-pcre=/usr/local/pcre/ --with-zlib=/usr/local/zlib/ --with-openssl=/usr/local/openssl/</code>
報錯
百度了一下,原來--with-pcre要指定的不是安裝目錄而是源碼目錄
<code>./configure --prefix=/usr/local/nginx --with-pcre=/root/pcre-8.41 --with-zlib=/usr/local/zlib/ --with-openssl=/usr/local/openssl/</code>
又報錯
直接指定zlib的源碼目錄好了
<code>./configure --prefix=/usr/local/nginx --with-pcre=/root/pcre-8.41 --with-zlib=/root/zlib-1.2.11 --with-openssl=/usr/local/openssl/</code>
成功
測試一下
如果你這個時候還是通路不了你的nginx,出現ERR_ADDRESS_UNREACHABLE這個錯誤,你要檢查一下你的防火牆,可以配置也可以選擇關閉
<code>systemctl stop firewalld.service</code>
其實到這一步的時候我已經忘記我在幹什麼了,看了一下标題,哦!原來我在做一個鏡像站,,,,,
<code>yum install rsync</code>
之後,配置一下站點
在home檔案夾下建立一個站點檔案來存放同步過來的資源
<code>mkdir /home/mirror</code>
之後修改nginx.conf的server段為
重新開機一下伺服器
接着你去通路站點,看到的就會是下面這樣,因為打開了nginx的目錄浏覽功能<code>autoindex</code>
安裝createrepo
<code>yum install createrepo</code>
因為centos的軟體包目錄有點多,而且大,是以為了友善我就隻同步epel軟體源了
<code>mkdir epel</code>
<code>cd epel</code>
<code>mkdir 7</code>
之後編寫一個同步腳本
賦予執行權限
<code>sudo chmod +x rsync.sh</code>
安裝screen
<code>yum install screen</code>
建立一個新的會話
<code>screen -S rsync</code>
執行腳本
<code>./rsync.sh</code>
<code>ctrl+a+d</code>退出
你可以安裝bwm-ng來監控網速
經過兩天的折騰,鏡像終于同步完成
至于為什麼這麼慢,是因為之前是在清華大學mirror下同步的,但是那個mirror總是同步到一半之後就同步不料了,下面我推薦一個國外鏡像站,清華大學的epel源也是在那邊同步過來的,這個時候我不得不說一下很多國外鏡像源都是支援rsync的,這可以看出,外國人還是挺良心的,是以百度我草泥馬,為什麼罵百度?因為沒什麼地方罵,是以,罵百度是沒有錯的。
epel源同步完成之後,總的大小有
108G!沒錯。
首先update一下原來的系統,證明原來的系統有軟體源,而且是可以用的
接着備份一下原來用戶端的軟體源
删除原來的所有軟體源
在檔案夾中建立一個檔案bboysoul.repo
<code>touch bboysoul.repo</code>
寫入内容
接着清理原來的緩存再建立新的緩存
<code>yum clean all</code>
之後安裝一個軟體包試試
沒問題
我這裡使用的是crontab
編輯crontab的配置檔案
<code>crontab -e</code>
輸入下面的内容
<code>sudo service crond restart</code>