跳转至

02-yum-server部署手册

YUM简单介绍

YUM是什么

YUM主要用于自动安装、升级rpm软件包,它能自动查找并解决rpm包之间的依赖关系。要成功的使用YUM工具安装更新软件或系统,就需要有一个包含各种rpm软件包的repository(软件仓库),这个软件仓库我们习惯称为yum源。网络上有大量的yum源,但由于受到网络环境的限制,导致软件安装耗时过长甚至失败。特别是当有大量服务器大量软件包需要安装时,缓慢的进度条令人难以忍受。因此我们在优化系统时,都会更换国内的源。

相比较而言,本地YUM源服务器最大优点是局域网的快速网络连接和稳定性。有了局域网中的YUM源服务器,即便在Internet连接中断的情况下,也不会影响其他YUM客户端的软件安装和升级。

YUM(Yellow Dog Updater Modified)为多个Linux发行版的软件包管理器,例如Redhad RHEL CentOS & Fedora。YUM主要用于自动安装,升级rpm软件包,他能自动查找并解决rpm包的依赖关系

YUM自动下载YUM包并安装,类似软件管家的一键安装功能:

image-20211027091708615

YUM源是什么

(1)要成功的使用YUM工具安装更新软件或系统,就需要有一个包含各种rpm软件包的repository(软件仓库),这个软件仓库我们习惯称为yum源,

(2)网络上有大量的yum源,但由于受到网络环境的限制,导致软件安装耗时过长甚至失败,特别是当有大量服务器大量软件包需要安装时,缓慢的进度条令人难以忍受,因此我们在优化系统时,都会更换国内的源

(3)相比较而言,本地YUM源服务器最大优点是局域网的快速网络连接和稳定性,有了局域网中的YUM源服务器,即便在Internel连接中断的情况下,也不会影响其他YUM客户端的软件安装和升级。

YUM源工作原理

image-20211027091739048

YUM源client配置文件的存放路径

[root@nfs01 packages]# cd /etc/yum.repos.d/
[root@nfs01 yum.repos.d]# ls
CentOS-Base.repo          CentOS-fasttrack.repo  epel.repo
CentOS-Base.repo20160426  CentOS-Media.repo
CentOS-Debuginfo.repo     CentOS-Vault.repo

国内YUM仓库推荐

以下为国内常见yum仓库

网易163 yum源,安装方法查看:http://mirrors.163.com/.help/ 
中科大的 yum源,安装方法查看:https://lug.ustc.edu.cn/wiki/mirrors/help 
sohu的 yum源,安装方法查看: http://mirrors.sohu.com/help/ 
阿里云的 yum源,安装方法查看: https://opsx.alibaba.com/mirror 
清华大学的 yum源,安装方法查看: https://mirrors.tuna.tsinghua.edu.cn/ 
浙江大学的 yum源,安装方法查看: http://mirrors.zju.edu.cn/ 
中国科技大学yum源,安装方法查看: http://centos.ustc.edu.cn/

RPM包版本号说明

rpm包的命名规范

name-version-release-arch.rpm

名称-版本-发行版本-平台-后缀

version**:版本号**

主版本号:软件有重大改进

次版本号:某个子功能发生变化

修订号:软件发布时解决了一个BUG,或者调整了一部分功能

release**:发行版本号**

是源程序配置完成后,编译,制作rpm包的版本

OS:系统平台

硬件平台CPU

YUM仓库搭建部署

使用ISO镜像搭建YUM仓库

1.或者将镜像文件提前下载地址服务器

CentOS-7-x86_64-DVD-1804.iso
CentOS-7-x86_64-Everything-1810.iso

2.将光驱进行挂载到/mnt目录下

挂载iso文件
mkdir -p /data/mirrors/
mount CentOS-7-x86_64-DVD-1804.iso /mnt/

将挂载的所有文件复制到/data/mirrors/centos/目录
mkdir -p /data/mirrors/centos/
\cp -rf /mnt/* /data/mirrors/centos/

检查文件是否复制完毕
ls -l /data/mirrors/centos/

取消挂载的iso文件
umount /mnt/

3.安装nginx服务

yum -y install nginx vim

4.配置nginx服务

\cp -f /etc/nginx/nginx.conf /etc/nginx/nginx.conf_bak
vim /etc/nginx/nginx.conf
http {
    autoindex on;
    autoindex_exact_size on;
    autoindex_localtime on;
        server {
             root         /data/mirrors/;

5.启动nginx服务

systemctl start nginx
systemctl enable nginx

6.访问web界面

image-20220113154547734python的发布的进程关闭,需要到目录下面去发布(选做)

[root@m01 mnt]# lsof -i :80
COMMAND  PID USERFD   TYPE DEVICE SIZE/OFF NODE NAME
python  4171 root3u  IPv4  196750t0  TCP *:http (LISTEN)
[root@m01 mnt]# jobs
[1]+  Stopped                 vimdiff CentOS-Base.repo CentOS-Base.repo.source.bak  (wd: /etc/yum.repos.d)
[2]-  Running                 python -m SimpleHTTPServer 80 &>/dev/null &  (wd: /application/yum/centos6.6/x86_64)
[root@m01 mnt]# pkill python          ß杀死相应的进程
[root@m01 mnt]# kill %1
[root@m01 mnt]# lsof -i :80                   ß检查进程是否被杀死
[root@m01 mnt]# python -m SimpleHTTPServer 80 &>/dev/null &
[2] 4215
[root@m01 mnt]# lsof -i :80
COMMAND  PID USERFD   TYPE DEVICE SIZE/OFF NODE NAME
python  4215 root3u  IPv4  199860t0  TCP *:http (LISTEN)

客户端如何配置YUM仓库

rm -f /etc/yum.repos.d/*.repo

cat >/etc/yum.repos.d/CentOS-Base.repo<<EOF
[centos]
name=CentOS-$releasever - Base
baseurl=http://192.168.56.76/centos/
gpgcheck=0
enabled=1
EOF

客户端如何使用YUM仓库

清理yum缓存
yum clean all

更新yum仓库
yum makecache
yum repolist

使用yum仓库安装软件

[root@web01 ~]# yum -y install httpd          ß安装apache软件测试
Installed:
  httpd.x86_64 0:2.2.15-45.el6.centos
上面展示的需要新建一个文件,也许工作中还有更多的配置,如果手动配置比较繁琐,因此有一种更简单的方法,将这些操作做成rpm包。
fpm -s dir -t rpm -n oldboyedu_repo -v 1.0 --post-install /server/scripts/oldboyedu_rpm.sh -f /etc/yum.repos.d/oldboyedu.repo
oldboyedu_rpm.sh

脚本主要是刚才我们的一些操作。

使用RPM包搭建YUM仓库

1.清理上面的实验环境

rm -fr /data/mirrors/centos/

2.配置公网YUM仓库

rm -f /etc/yum.repos.d/*.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
yum clean all
yum repolist

3.创建目录用来做YUM仓库的使用,准备下载rpm包软件

mkdir -p /data/mirrors/centos/
yum install --downloadonly --downloaddir=/data/mirrors/centos/ java

3,安装createrepo软件,用于生成yum仓库数据库的软件

yum -y install createrepo 
rpm -qa|grep createrepo

4.初始化repodata索引文件(每次发布新的内容都需要更新,)

createrepo -pdo /data/mirrors/centos/ /data/mirrors/centos/

5.每加入或者更新一个rpm包就要更新一下

createrepo --update /data/mirrors/centos/

6.使用nginx当web服务器

yum -y install nginx
cp /etc/nginx/nginx.conf{,.source.bak}
vi /etc/nginx/nginx.conf
        root         /application/yum/centos7/x86_64/;  修改默认的主页目录
打开nginx.conf文件,在location server 或 http段中加入
autoindex on;
autoindex_exact_size on;
#显示出文件的确切大小,单位是bytes 改为off后,显示出文件的大概大小,单位是kB或者MB或者GB
autoindex_localtime on;
#默认为off,显示的文件时间为GMT时间。改为on后,显示的文件时间为文件的服务器时间

6.检查并启动nginx

nginx -t
systemctl start nginx
systemctl enable nginx
打开浏览器,最后的显示效果
http://192.168.56.100/

7.访问web服务器

image-20220113160320455

8.YUM客户端设置

rm -f /etc/yum.repos.d/*.repo
cat >/etc/yum.repos.d/local.repo<<EOF
[local-repo]
name=local
baseurl=http://192.168.56.76/centos/
gpgcheck=0
enabled=1
EOF
yum clean all
yum repolist

安装软件
yum install java

此方式需要在同一系统环境下进行软件包的下载,因为需要解决rpm包依赖的问题

公网镜像同步搭建YUM仓库

上面只是将自己制作的rpm包,放入yum源。但还有一种企业需求,说的更具体一点,平时学生上课yum安装软件都是从公网下载的,占用带宽,因此在学校里搭建一个内网yum服务器,但又考虑到学生回家也要使用yum安装软件,如果yum软件的数据库文件repodata不一样,就会有问题。因此我想到的解决方法就是直接使用公网yum源的repodata。

镜像同步公网yum源
上游yum源必须要支持rsync协议,否则不能使用rsync进行同步。
http://mirrors.ustc.edu.cn/status/

rsync://mirrors.ustc.edu.cn/

CentOS源:rsync://mirrors.tuna.tsinghua.edu.cn/centos/
epel源:rsync://mirrors.tuna.tsinghua.edu.cn/epel/
备用源:rsync://mirrors.ustc.edu.cn/

同步方案1:此方案适合磁盘空间不是很富裕,但是想最小化使用YUM私有仓库的需求(仅适用于centos7系列系统)

mkdir -p /data/mirrors/
mkdir -p /data/mirrors/centos/7/os/x86_64/
mkdir -p /data/mirrors/centos/7/extras/x86_64/
mkdir -p /data/mirrors/centos/7/updates/x86_64/
mkdir -p /data/mirrors/epel/7/
rsync -avzuP rsync://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/ /data/mirrors/centos/7/os/x86_64/
rsync -avzuP rsync://mirrors.tuna.tsinghua.edu.cn/centos/7/extras/x86_64/ /data/mirrors/centos/7/extras/x86_64/
rsync -avzuP rsync://mirrors.tuna.tsinghua.edu.cn/centos/7/updates/x86_64/ /data/mirrors/centos/7/updates/x86_64/
rsync -avzuP rsync://mirrors.tuna.tsinghua.edu.cn/epel/7/ /data/mirrors/epel/7/

同步方案2:此方案适合磁盘空间还算富裕,但是想最性价比的使用YUM私有仓库的需求(仅适用于centos7系列系统)

mkdir -p /data/mirrors/
mkdir -p /data/mirrors/centos/7/
mkdir -p /data/mirrors/epel/7/
rsync -avzuP rsync://mirrors.tuna.tsinghua.edu.cn/centos/7/ /data/mirrors/centos/7/
rsync -avzuP rsync://mirrors.tuna.tsinghua.edu.cn/epel/7/ /data/mirrors/epel/7/

同步方案3:此方案适合磁盘空间富裕,使用YUM私有仓库的需求(适用于centos系列系统)

mkdir -p /data/mirrors/
mkdir -p /data/mirrors/centos/
mkdir -p /data/mirrors/epel/
rsync -avzuP rsync://mirrors.tuna.tsinghua.edu.cn/centos/ /data/mirrors/centos/
rsync -avzuP rsync://mirrors.tuna.tsinghua.edu.cn/epel/ /data/mirrors/epel/

企业级YUM仓库搭建(模拟163源)

搭建企业级YUM仓库

https://gitee.com/chriscentos/rsync-yum

本软件是用来搭建企业级yum私有仓库

安装部署

开始安装相关依赖软件包

yum -y install nginx rsync git vim
挂载数据磁盘
mkfs.xfs -f /dev/sdb
mkdir -p /data
mount /dev/sdb /data/
 echo "/dev/sdb                                  /data                   xfs     defaults        0 0" >>/etc/fstab ; cat /etc/fstab |grep data
创建yum仓库目录
mkdir -p /data/mirrors
克隆同步代码
cd /data/mirrors
git clone https://gitee.com/chriscentos/rsync-yum.git
复制web相关源码
cp -rf .resource .help index.html /data/mirrors/

同步仓库

现在开始同步公网软件仓库

cd /data/mirrors/rsync-yum
sh rsync_yum.sh

配置web

首先备份nginx原始配置文件

\cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf_bak

修改nginx配置文件将server段进行修改

vim /etc/nginx/nginx.conf 
server
{
    listen 80 default_server;
    server_name _;
    root /data/mirrors;
    location ~ ^/(centos|epel) {
      index  index.html index.htm;
      autoindex on;
      autoindex_exact_size off;
      autoindex_localtime on;
    }
    error_page   500 502 503 504  /50x.html;

    #include enable-php56.conf;
    #include enable-php70.conf;
    #include enable-php71.conf;
    #include enable-php72.conf;
    #include enable-php73.conf;
#include enable-php74.conf;

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
    }
}
检查nginx配置文件的语法
nginx -t
没有报错则表示通过

启动nginx服务

systemctl start nginx
systemctl enable nginx

访问web

打开浏览器进行web访问 http://192.168.56.76/ image-20220113144936350

后台同步

yum -y install tmux
tmux new -s yum_rsync
sh rsync_yum.sh 

同步状态脚本

[root@linux-node76 rsync-yum]# crontab -e

*/1 * * * * /bin/sh /data/mirrors/rsync-yum/yum_status_rsync.sh &>/dev/null

内存释放

echo 3 > /proc/sys/vm/drop_caches &>/dev/null



cat >/etc/clean_mem.sh<<EOF
#!/bin/bash

source /etc/profile
echo 3 > /proc/sys/vm/drop_caches
EOF
chmod +x /etc/clean_mem.sh

*/1 * * * * /bin/sh /etc/clean_mem.sh &>/dev/null

客户端配置

方法1:任意找一台机器配置局域网YUM(域名)

rm -f /etc/yum.repos.d/*.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
echo "192.168.1.112 mirrors.cloud.tencent.com" >>/etc/hosts

mkdir -p /data/test/
yum install --downloadonly --downloaddir=/data/test/ java
yum install --downloadonly --downloaddir=/data/test/ nginx
yum groupinstall --downloadonly --downloaddir=/data/test/ "GNOME Desktop"

安装zabbix测试
wget http://repo.zabbix.com/non-supported/rhel/7/x86_64/iksemel-devel-1.4-2.el7.centos.x86_64.rpm
wget http://repo.zabbix.com/non-supported/rhel/7/x86_64/iksemel-1.4-2.el7.centos.x86_64.rpm
wget http://repo.zabbix.com/non-supported/rhel/7/x86_64/iksemel-utils-1.4-2.el7.centos.x86_64.rpm
yum localinstall iksemel-*

yum install zabbix-server zabbix-web zabbix-server-mysql zabbix-web-mysql mariadb-server mariadb -y

方法2:任意找一台机器配置局域网YUM(IP)

rm -f /etc/yum.repos.d/*.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo

sed -i "s#mirrors.cloud.tencent.com#192.168.1.112#g" /etc/yum.repos.d/CentOS-Base.repo
sed -i "s#mirrors.cloud.tencent.com#192.168.1.112#g" /etc/yum.repos.d/epel.repo

企业级YUM仓库搭建(模拟清华源)

tunasync搭建

在公司的企业私有云平台建立完成之后,为了便于云主机操作系统与软件快速部署更新,需要搭建企业级内网的开源镜像站。调研了国内各大开源镜像站点的技术之后,最终决定使用清华大学开源软件镜像站开发的镜像管理器 tunasync 来构建云平台的软件镜像服务,毕竟使用成熟的镜像管理器比从头造轮子还是方便了许多,镜像站不是云的核心服务也不需要投入太多人力去做开发。

本文介绍了从0开始搭建一个内网开源镜像站并为用户提供 web 访问服务的全过程,希望对有构建内网镜像站服务需求的同学有所帮助。

前以CentOS7系统为例,搭建一个基于内网的镜像仓库,建议硬盘至少2T以上,同步速度与网络带宽、磁盘读写速度有关!

https://github.com/tuna/tunasync

1、安装依赖

yum -y install rsync wget vim

2、下载tunasync

wget https://github.com/tuna/tunasync/releases/download/v0.3.7/tunasync-linux-bin.tar.gz

tar xf tunasync-linux-bin.tar.gz
mv tunasync /usr/bin/
mv tunasynctl /usr/bin/

挂载磁盘(选做)

mkfs.xfs -f /dev/sdb
mkdir -p /data
mount /dev/sdb /data/
 echo "/dev/sdb                                  /data                   xfs     defaults        0 0" >>/etc/fstab ; cat /etc/fstab |grep data

3、创建仓库目录

mkdir -p /data/mirrors

4、创建日志目录

mkdir -p /data/logs/tunasync

5、创建tunasync配置文件

mkdir /etc/tunasync

6、创建manager.conf配置文件

[root@linux-node76 ~]# cat >/etc/tunasync/manager.conf<<EOF
[server]
addr = "127.0.0.1"
port = 14242
ssl_cert = ""
ssl_key = ""

[files]
db_type = "bolt"
db_file = "/etc/tunasync/manager.db"
ca_cert = ""
EOF

manager部分参数说明:

addr:manager服务监听地址 port:manager服务监听端口 ssl_cert和ssl_key:证书配置 db_file:数据库文件位置

7、创建worker.conf配置文件

cat >/etc/tunasync/worker-centos.conf<<EOF
[global]
name = "centos_worker"
log_dir = "/data/logs/tunasync/{{.Name}}"
mirror_dir = "/data/mirrors"
concurrent = 100
interval = 240

[manager]
api_base = "http://127.0.0.1:14242"
token = ""
ca_cert = ""

[cgroup]
enable = false
base_path = "/sys/fs/cgroup"
group = "tunasync"

[server]
hostname = "localhost"
listen_addr = "127.0.0.1"
listen_port = 6000
ssl_cert = ""
ssl_key = ""


[[mirrors]]
name = "centos"
provider = "rsync"
upstream = "rsync://192.168.1.112/centos/"
EOF


#############################################################

cat >/etc/tunasync/worker-other.conf<<EOF
[global]
name = "other_worker"
log_dir = "/data/logs/tunasync/{{.Name}}"
mirror_dir = "/data/mirrors"
concurrent = 100
interval = 240

[manager]
api_base = "http://127.0.0.1:14242"
token = ""
ca_cert = ""

[cgroup]
enable = false
base_path = "/sys/fs/cgroup"
group = "tunasync"

[server]
hostname = "localhost"
listen_addr = "127.0.0.1"
listen_port = 6001
ssl_cert = ""
ssl_key = ""


[[mirrors]]
name = "epel"
provider = "rsync"
upstream = "rsync://192.168.1.112/epel/"
use_ipv6 = false

[[mirrors]]
name = "zabbix"
provider = "rsync"
upstream = "rsync://192.168.1.112/zabbix/"
use_ipv6 = false
EOF

worker部分参数说明:

log_dir:tunasync日志路径 mirror_dir:镜像的路径 concurrent:线程数 interval:同步周期,单位分钟 api_base:manager地址 name:镜像名称 upstream:upstream同步地址

在启动服务器之前先测试远程服务器是否可以同步数据

rsync -avzhuP -H --delete  --progress  rsync://192.168.1.112/centos/  /data/mirrors/centos/
rsync -avzhuP -H --delete  --progress  rsync://192.168.1.112/epel/  /data/mirrors/epel/
rsync -avzhuP -H --delete  --progress  rsync://192.168.1.112/zabbix/  /data/mirrors/zabbix/

9、启动服务

cd /etc/tunasync/
tunasync manager --config manager.conf &
tunasync worker --config worker-centos.conf 
tunasync worker --config worker-other.conf

后台运行的方式
cd /etc/tunasync/
tunasync manager --config manager.conf &
tunasync worker --config worker-centos.conf &
tunasync worker --config worker-other.conf &

10、查看同步状态

此处14242为manager的端口

tunasynctl list -p 14242 --all

11.更多配置资料请参考官方配置

可以参看

> tunasync manager --help
> tunasync worker --help

可以看一下 log 目录

一些 worker 配置文件示例 workers.conf

你可能会用到的操作 tips.md

内存释放

echo 3 > /proc/sys/vm/drop_caches &>/dev/null



cat >/etc/clean_mem.sh<<EOF
#!/bin/bash

source /etc/profile
echo 3 > /proc/sys/vm/drop_caches
EOF
chmod +x /etc/clean_mem.sh

*/1 * * * * /bin/sh /etc/clean_mem.sh &>/dev/null

mirror-web搭建

https://github.com/tuna/mirror-web

mirror-web是清华大学软件源开源的 web前端代码 https://mirrors.tuna.tsinghua.edu.cn/

配置外网yum

rm -f /etc/yum.repos.d/*.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
yum clean all
yum repolist

准备下载安装包

ruby-2.6.9-1.el7.centos.x86_64.rpm
nodejs.tar.gz
rubygems-2.4.8.tgz

1.安装 nodejs

tar xf nodejs.tar.gz 
cd nodejs
yum -y localinstall *.rpm

2.安装 ruby 2.2.4 and rubygems

Step 1: Install Required Packages

yum -y install gcc-c++ patch readline readline-devel zlib zlib-devel
yum -y install libyaml-devel libffi-devel openssl-devel make
yum -y install bzip2 autoconf automake libtool bison iconv-devel sqlite-devel

Step 2: Compile ruby 2.6.9 source code

cd /root/
yum -y localinstall ruby-2.6.9-1.el7.centos.x86_64.rpm 

Step 3: Install rubygems

tar xf rubygems-2.4.8.tgz 
cd rubygems-2.4.8/

https://blog.csdn.net/adley_app/article/details/111733908

gem sources --remove https://rubygems.org/ 
gem sources -a https://gems.ruby-china.com/
gem sources -l
gem sources -u

ruby setup.rb

3.安装 bundle 和 build

gem install bundle
gem install build

4.Fork mirrors source code

yum -y install git
git clone https://gitee.com/chriscentos/mirror-web.git

[root@linux-node76 mirrors]# vim Gemfile
将
source 'https://mirrors.tuna.tsinghua.edu.cn/rubygems/'
修改为
source 'https://gems.ruby-china.com/'

bundle install
jekyll build



yum -y install tmux
tmux new -s test01
jekyll serve -H 192.168.56.76 -P 80

5.下载动态文件

此步骤不需要操作
cd /data/mirrors
wget http://mirrors.tuna.tsinghua.edu.cn/static/tunasync.json -O static/tunasync.json

从此部署开始操作
cd /data/mirrors
wget http://mirrors.tuna.tsinghua.edu.cn/static/tunet.json -O static/tunet.json
mkdir -p static/status
wget http://mirrors.tuna.tsinghua.edu.cn/static/status/isoinfo.json -O static/status/isoinfo.json

6.配置修改动态文件

cd /data/mirrors/
wget -q http://127.0.0.1:14242/jobs -O static/tunasync.json

可以将此命令加入到定时任务
*/1 * * * * wget -q http://127.0.0.1:14242/jobs -O /data/mirrors/static/tunasync.json &>/dev/null


tunasynctl list -p 14242 --all

解压mirrors-web.tar.gz源码到/data/mirrors/

tar xf mirrors-web.tar.gz -C /data/mirrors/
cd /data/mirrors/
mv mirrors-web/* ./

安装nginx

yum -y install nginx

首先备份nginx原始配置文件

\cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf_bak

修改nginx配置文件将server段进行修改

vim /etc/nginx/nginx.conf 
server
{
    listen 80 default_server;
    server_name _;
    root /data/mirrors;
    location ~ ^/(centos|epel|zabbix) {
      index  index.html index.htm;
      autoindex on;
      autoindex_exact_size off;
      autoindex_localtime on;
    }
    error_page   500 502 503 504  /50x.html;

    #include enable-php56.conf;
    #include enable-php70.conf;
    #include enable-php71.conf;
    #include enable-php72.conf;
    #include enable-php73.conf;
#include enable-php74.conf;

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
    }
}
检查nginx配置文件的语法
nginx -t
没有报错则表示通过

启动nginx服务

systemctl start nginx
systemctl enable nginx

7.打开web界面进行访问

image-20220117173106574

Rsync 服务器搭建

简单介绍

rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。

已支持跨平台,可以在Windows与Linux间进行数据同步。

安装部署

1:安装软件包:

yum install -y rsync

2:修改配置文件: /etc/rsyncd.conf

uid = root
gid = root
use chroot = yes

#下面是不同模块各自的配置和路径,仅供参考
[centos] 
        path = /data/mirrors/centos
        comment = repository
        list = true
        uid = root
        gid = root
        hosts allow = *

[epel]
        path = /data/mirrors/epel
        comment = repository
        list = true
        uid = root
        gid = root
        hosts allow = *
[zabbix]
        path = /data/mirrors/zabbix
        comment = repository
        list = true
        uid = root
        gid = root
        hosts allow = *

启动服务

3:启动服务:

rsync --daemon --no-detach 


后台运行:
rsync --daemon --no-detach &

客户端测试

4:客户端测试命令:

rsync -avzhuP -H --delete  --progress  rsync://192.168.1.112/centos/  /data/mirrors/centos/
rsync -avzhuP -H --delete  --progress  rsync://192.168.1.112/epel/  /data/mirrors/epel/
rsync -avzhuP -H --delete  --progress  rsync://192.168.1.112/zabbix/  /data/mirrors/zabbix/

第三方YUM搭建推荐

通过tunasync搭建镜像仓库
https://developer.aliyun.com/article/769489


https://github.com/tuna/tunasync
https://github.com/tuna/mirror-web

常见错误

yum 错误 Insufficient space in download directory

今天用yum安装libpcap的时候出现了这个错误

Insufficient space in download directory/var/cache/yum/i386/12/fedora/packages

提示下载目录空间不足

用df -h查看了一下空间使用情况,真的发现确实使用了100%

有三个方法:

1:手动删除一些不需要的东西了!

2:可以在删除文件之前试试 yum clean all 命令,它会清除yum的缓存文件。----删除的太少,而且再次使用yum时还会下载一些东西,不建议使用

3:直接去手动删除日志文件吧。但是日志文件毕竟是小的!