zoukankan      html  css  js  c++  java
  • 基于nginx搭建yum源服务器

    1、首先关闭防护墙或者设置规则通过且关闭selinux

    停止firewall

    systemctl stop firewalld

    禁止firewall开机启动

    systemctl disable firewalld

    或设置firewall规则

    firewall-cmd --permanent --zone=public --add-service=http
    firewall-cmd --reload

    修改SELINUX=enforce行为SELINUX=disabled

    sed -i 's/SELINUX=setenforce 0/SELINUX=disabled/' /etc/sysconfig/selinux

    2、nginx-1.14.2版本(编译安装)-自定义安装路径

    安装路径:/usr/local/nginx

    1.前期准备

    安装编译需要的gcc和gcc-c++

    yum install -y gcc gcc-c++

    安装nginx依赖pcre-devel、openssl-devel、zlib-devel

    yum install -y pcre pcre-devel openssl openssl-devel zlib zlib-devel

    下载nginx源码包并解压到当前目录

    wget http://nginx.org/download/nginx-1.14.2.tar.gz
    tar zxvf nginx-1.14.2.tar.gz

    2.nginx编译安装

    生成Makefile文件

    cd nginx-1.14.2
    ./configure --user=nginx 
    --group=nginx 
    --prefix=/usr/local/nginx/ 
    --with-http_v2_module 
    --with-http_ssl_module 
    --with-http_sub_module 
    --with-http_stub_status_module 
    --with-http_gzip_static_module 
    --with-pcre

    编译源代码并安装

    make && make install

    3.后期结尾

    创建用户

    useradd nginx

    添加环境变量,创建nginx命令软链接到环境变量

    ln -s /usr/local/nginx/sbin/* /usr/local/sbin/

    4.配置nginx开启php支持(仅参考)

    在server段中开启php支持

    找到如下内容,删除注释字符,并将倒数第二行的 /scripts 替换为 $document_root

    修改前

    #location ~ .php$ {

    #    root           html;

    #    fastcgi_pass   127.0.0.1:9000;

    #    fastcgi_index  index.php;

    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

    #    include        fastcgi_params;

    #}

    修改后

    location ~ .php$ {

    root           html;

    fastcgi_pass   127.0.0.1:9000;

    fastcgi_index  index.php;

    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

    include        fastcgi_params;

    }

    该段代码在server中的位置:

    server {

        listen       80;

        server_name  localhost;

        location / {

            root   html;

            index  index.php index.html index.htm;

        }

        location ~ .php$ {

            root           html;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

            include        fastcgi_params;

        }

    }

    注意:location ~ .php$ {}块中root的值和location / {}块中root的值需要一致

    3、开启nginx目录浏览

    vim /usr/local/nginx/conf/nginx.conf

    添加如下内容:

    location / {  
            root /usr/local/nginx/html/pack/    //指定实际目录绝对路径;
            autoindex on;                       //开启目录浏览功能;
            autoindex_exact_size off;           //关闭详细文件大小统计,让文件大小显示MB,GB单位,默认为b;
            autoindex_localtime on;             //开启以服务器本地时区显示文件修改日期!
    }

    还有一个问题是这里开启的是全局的目录浏览功能,那么如何实现具体目录浏览功能呢?(仅参考)

    2. 只打开网站部分目录浏览功能

    只打开http://www.******.com/soft 目录浏览

    vi  /usr/local/nginx/conf/nginx.conf   #编辑配置文件,在server {下面添加以下内容:

    location   /soft {

    autoindex on;

    autoindex_exact_size off;

    autoindex_localtime on;

    }

    :wq!  #保存,退出

    4、创建目录

    在web根目录下创建centosplus、extras、updates、os四个目录

    mkdir centosplus extras updates os

    #这四个目录用来区分类型(仅参考)

    for DIR in $(ls); do cd $DIR; mkdir Packages; cd ..; done

    #分别在四个目录下创建存储rpm包的目录

    5、利用rsync同步至本地

    rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/Packages/ /usr/local/nginx/html/pack/centos/6/os/x86_64/Packages/
    rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/6/extras/x86_64/Packages/ /usr/local/nginx/html/pack/centos/6/extras/x86_64/Packages/
    rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/6/updates/x86_64/Packages/ /usr/local/nginx/html/pack/centos/6/updates/x86_64/Packages/
    rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/6/centosplus/x86_64/Packages/ /usr/local/nginx/html/pack/centos/6/centosplus/x86_64/Packages/
    rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/7/os/x86_64/Packages/ /usr/local/nginx/html/pack/centos/7/os/x86_64/Packages/
    rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/7/extras/x86_64/Packages/ /usr/local/nginx/html/pack/centos/7/extras/x86_64/Packages/
    rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/7/updates/x86_64/Packages/ /usr/local/nginx/html/pack/centos/7/updates/x86_64/Packages/
    rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/7/centosplus/x86_64/Packages/ /usr/local/nginx/html/pack/centos/7/centosplus/x86_64/Packages/

    或者同步全部数据(数据量较大不推荐,大小约136G)

    rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/ /usr/local/nginx/html/pack/centos/

    提供几个支持rsync同步的网站

    mirrors.tuna.tsinghua.edu.cn

    mirrors.ustc.edu.cn

    mirrors.kernel.org

    mirrors.neusoft.edu.cn

    6、创建仓库

    对三个目录使用createrepo创建仓库(生成repodata目录),供client端检索使用

    yum install -y createrepo
    createrepo /usr/local/nginx/html/pack/centos/6/os/x86_64/
    createrepo /usr/local/nginx/html/pack/centos/6/extras/x86_64/
    createrepo /usr/local/nginx/html/pack/centos/6/updates/x86_64/
    createrepo /usr/local/nginx/html/pack/centos/6/centosplus/x86_64/
    createrepo /usr/local/nginx/html/pack/centos/7/os/x86_64/
    createrepo /usr/local/nginx/html/pack/centos/7/extras/x86_64/
    createrepo /usr/local/nginx/html/pack/centos/7/updates/x86_64/
    createrepo /usr/local/nginx/html/pack/centos/7/centosplus/x86_64/

    #-o 指定repodata生成的目录

    此时yum服务器已经搭建完成

    7、创建计划任务

    vim /etc/crontab

    添加以下内容:

    0  5  *  *  1 root       rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/ /usr/local/nginx/html/pack/centos/ >/dev/null 2>&1  #每周一5点执行同步命令

     同步完成后需要更新仓库

    createrepo --update /usr/local/nginx/html/pack/centos/6/os/x86_64/
    createrepo --update /usr/local/nginx/html/pack/centos/6/extras/x86_64/
    createrepo --update /usr/local/nginx/html/pack/centos/6/updates/x86_64/
    createrepo --update /usr/local/nginx/html/pack/centos/6/centosplus/x86_64/
    createrepo --update /usr/local/nginx/html/pack/centos/7/os/x86_64/
    createrepo --update /usr/local/nginx/html/pack/centos/7/extras/x86_64/
    createrepo --update /usr/local/nginx/html/pack/centos/7/updates/x86_64/
    createrepo --update /usr/local/nginx/html/pack/centos/7/centosplus/x86_64/

    8、客户端配置

    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
    cat >> /etc/yum.repos.d/CentOS-Base.repo << eof
    [base]
    name=CentOS-$releasever - Base
    baseurl=http://mirrors.yryun.com/centos/$releasever/os/$basearch/
    enabled=1
    gpgcheck=0
    
    #released updates
    [updates]
    name=CentOS-$releasever - Updates
    baseurl=http://mirrors.yryun.com/centos/$releasever/updates/$basearch/
    enabled=1
    gpgcheck=0
    
    #additional packages that may be useful
    [extras]
    name=CentOS-$releasever - Extras
    baseurl=http://mirrors.yryun.com/centos/$releasever/extras/$basearch/
    enabled=1
    gpgcheck=0
    
    #additional packages that extend functionality of existing packages
    [centosplus]
    name=CentOS-$releasever - Plus
    baseurl=http://mirrors.yryun.com/centos/$releasever/centosplus/$basearch/
    enabled=1
    gpgcheck=0
    
    eof

    #清除所有缓存

    yum clean all

    #建立缓存

    yum makecache

    #查看yum源列表

    yum repolist

    #当yum服务器内容修改了之后或者修改了yum源文件,客户机需要重新建立缓存

    #baseurl指向仓库(repodata)所在的目录

  • 相关阅读:
    juypter4.4.0 自动补全
    Pytorch安装教程(Windows)
    编写你的第一个油猴脚本
    油猴(Tampermonkey)安装教程
    解决Linux系统下每次打开终端自动进入base环境
    Pytorch安装教程(Linux)
    Miniconda软件安装教程(Linux)
    解决vscode中使用pytorch时pylint报错Module torch has no xxx member
    解决pytorch报错ImportError: numpy.core.multiarray failed to import
    Miniconda软件安装教程(Windows)
  • 原文地址:https://www.cnblogs.com/omgasw/p/10194698.html
Copyright © 2011-2022 走看看