天天看点

CentOS通过配置独立的yum仓库安装nginxRHEL/CentOS 系列安装nginx

RHEL/CentOS 系列安装nginx

安装前的先决条件

需要先安装 yum-utils组件

sudo yum install yum-utils
           

创建nginx的仓库文件

  • 在 /etc/yum.repos.d/目录下创建 nginx.repo
  • 在nginx.repo文件中写入以下内容:
[nginx-stable] ##稳定版
    name=nginx stable repo
    baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=1 ## 启用状态
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true

    [nginx-mainline]## 测试版
    name=nginx mainline repo
    baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=0 ## 禁用状态
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true
           
  • 默认此时nginx稳定版仓库已经可用了
  • 如果你希望使用测试版的nginx,则需要执行以下命令:
sudo yum-config-manager --enable nginx-mainline
           

查看已配置好的yum源

yum clean all && yum repolist
           
[16:33:08 [email protected][ ~]#vim /etc/yum.repos.d/nginx.repo
[16:33:58 [email protected][ ~]#yum clean all
0 files removed
[16:34:01 [email protected][ ~]#yum repolist 
Qcloud centos OS - x86_64                                               1.4 MB/s | 2.3 MB     00:01    
Qcloud centosplus - x86_64                                              3.0 MB/s | 596 kB     00:00    
Qcloud centos extras - x86_64                                            19 kB/s | 9.6 kB     00:00    
Qcloud centos AppStream - x86_64                                        6.4 MB/s | 6.3 MB     00:00    
MariaDB                                                                  25 kB/s | 520 kB     00:21    
nginx stable repo                                                        22 kB/s |  22 kB     00:01    
nginx mainline repo                                                     9.4 kB/s |  68 kB     00:07    
repo id                                 repo name                                                 status
AppStream                               Qcloud centos AppStream - x86_64                          5,059
BaseOS                                  Qcloud centos OS - x86_64                                 1,695
centosplus                              Qcloud centosplus - x86_64                                   19
extras                                  Qcloud centos extras - x86_64                                34
mariadb                                 MariaDB                                                      83
nginx-mainline                          nginx mainline repo                                         228
nginx-stable                            nginx stable repo                                            66
           

接下来就可以正常安装nginx了

sudo yum install nginx
           

当然,你可以将nginx的yum仓库下载到你自己的服务器上,并通过配置本地yum源仓库服务器,是你的网络中的服务器通过自建yum服务器安装nginx

创建nginx仓库目录

  1. 在你自建的仓库服务器上创建nginx仓库目录
mkdir -vp /var/www/html/nginx/{6..8}/
           

实例:

[16:26:05 [email protected][ ~]#mkdir -p /var/www/html/nginx/{6..8}/;tree /var/www/html/nginx/
/var/www/html/nginx/
├── 6
├── 7
└── 8
           
  1. 下载nginx互联网上的yum源仓库到本地服务器

    2.1 使用dnf或者reposync下载对应repoid的源仓库

dnf reposync --repoid=nginx-stable --download-metadata -p /var/www/html/nginx/8/
           
  • 要同时下载元数据,必须加–download-metadata,默认只下载包,不下载元数据
dnf reposync --repoid=REPOID --download-metadata -p /path
           

http://nginx.org/packages/centos/8/x86_64/

http://nginx.org/packages/centos/7/x86_64/

  • CentOS 7 及以下版本,使用reposync工具
reposync --repoid=REPOID --download-metadata -p /path
           
  • 下载过程自动创建repodata元数据和PRPMS包文件夹
[16:47:20 [email protected][ ~]#tree /var/www/html/nginx/
/var/www/html/nginx/
├── 6
├── 7
└── 8
    └── nginx-stable
        ├── repodata
        │   ├── 07c7172382a937891672c7b8d904f0309ee797ece131e49f6983970a27843677-primary.sqlite.bz2
        │   ├── 2bd8ff18afb36a4d32d0bd3cb413a2d780fe27f5eadd4357ee51b02da07ac835-other.sqlite.bz2
        │   ├── 6bfbe62699b078fea2c84b93739c076630f288341a426358b5c47f50ab2b055e-filelists.sqlite.bz2
        │   ├── 6fe74815943219e462ba2e11bff11f61938fdba233885f9c9c2e839751a5a302-other.xml.gz
        │   ├── ad0fc726de1149e4c50c16a0e02fefb804fbdadb5c52089933dc5c67d99e8b6a-primary.xml.gz
        │   ├── eae01b4653202b40a5ba76f32d3a551117f837c31d1899aab2e7d78c7d006ade-filelists.xml.gz
        │   └── repomd.xml
        └── RPMS
            ├── nginx-1.16.0-1.el8.ngx.x86_64.rpm
            ├── nginx-1.16.1-1.el8.ngx.x86_64.rpm
            ├── nginx-1.18.0-1.el8.ngx.x86_64.rpm
            ├── nginx-1.18.0-2.el8.ngx.x86_64.rpm
           

2.2 使用wget下载页面包含的所有文件

2.2.1 手动创建所需文件夹先

实例:

[16:47:36 [email protected][ ~]#mkdir -pv /var/www/html/nginx/7/x86_64/{repodata,RMPS};tree !*
mkdir -pv /var/www/html/nginx/7/x86_64/{repodata,RMPS};tree /var/www/html/nginx/
mkdir: created directory '/var/www/html/nginx/7/x86_64'86_64/{repodata,RMP} 
mkdir: created directory '/var/www/html/nginx/7/x86_64/repodata'
mkdir: created directory '/var/www/html/nginx/7/x86_64/RMPS'
/var/www/html/nginx/
├── 6
├── 7
│   └── x86_64
│       ├── repodata
│       └── RMPS
           

2.2.2 从网址中过滤出需要下载的rpm包

curl http://nginx.org/packages/centos/7/x86_64/RPMS/ 2>/dev/null| grep href | cut -d'"' -f2
           

2.2.3 写个下载脚本

#!/bin/bash
WURL="http://nginx.org/packages/centos/7/x86_64/RPMS/"
curl $WURL > cNu.log
#PACK=`curl $WURL 2>/dev/null | grep "^<a href" | cut -d\"  -f2`
#SPACK=`echo $PACK | tr ' ' '\n'`
WDIR=/var/www/html/nginx/7/x86_64/RMPS/

for p in `grep "^<a href" cNu.log | cut -d\"  -f2` ;do
    wget  "$WURL$p" -p "$WDIR"
done
           

2.2.4赋权创建软链接

chmod a+x ./downloadNginx.sh
ln -s /root/downloadNginx.sh /root/bin/dln.sh
           

2.2.5 根据下载好的rpm包生成repodate

这条命令可以写在脚本里

createrepo /var/www/html/nginx/7/x86_64/RMPS/
           
CentOS通过配置独立的yum仓库安装nginxRHEL/CentOS 系列安装nginx