自己一直以来相搭建一个开源镜像站,一方面可以了解搭建镜像站的知识,一方面可以同步那些国内没有的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>