我们在安装centos 服务器时,可能会有以下情况:
局域网内有若干台服务器,但是只有一台服务器可以连接外网,其余服务器都不可以连接外网,但通过局域网与外网机器联通。
那么我们再使用 yum 安装软件时,可以采用以下方式
- 搭建本地 yum 源
- 使用nginx 代理 yum 源
其中方法1比较复杂且一旦需要第三方数据源时,更麻烦,因此我们这里介绍使用方法2。
在有外网的服务器上安装 nginx
安装 epel 源
[root@localhost ~] yum -y install epel-release
安装 nginx
[root@localhost ~] yum -y install nginx #我习惯手动编译安装
或者手动安装:
[root@localhost ~] yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
[root@localhost ~] wget http://nginx.org/download/nginx-1.18.0.tar.gz
[root@localhost ~] tar -zxvf nginx-1.18.0.tar.gz
[root@localhost ~] cd nginx-1.18.0
[root@localhost nginx-1.18.0] ./configure
[root@localhost nginx-1.18.0]make && make install
配置nginx 代理 yum 源
新增 nginx 配置文件
[root@localhost ~] vim /etc/nginx/conf/nginx.conf
输入以下内容,这里添加了一些常用的yum源,如果需要其他yum源可以自行添加
# centos 7 yum local source
server {
listen 7000;
server_name 192.168.1.101;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
location / {
root html;
index index.html index.htm;
}
location /centos/ {
proxy_pass http://mirrors.aliyun.com/centos/;
}
location /epel/ {
proxy_pass http://mirrors.aliyun.com/epel/;
}
location /mariadb/ {
proxy_pass http://mirrors.ustc.edu.cn/mariadb/;
}
}
检查nginx 配置,并重载nginx配置
[root@localhost sbin] nginx -t
[root@localhost sbin] nginx -s reload
在没有外网的服务器上面配置 yum 源
备份以前的yum 源配置文件
[root@localhost ~] cd /etc/yum.repos.d
[root@localhost yum.repos.d] mv CentOS-Base.repo CentOS-Base.repo.bak
根据上方代理的 yum 源,创建如下配置文件,注意将ip 192.168.1.101 换成对应的有外网服务器的局域网ip
CentOS-Base-nginx.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://192.168.1.101:7000/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://192.168.1.101:7000/centos/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://192.168.1.101:7000/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://192.168.1.101:7000/centos/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://192.168.1.101:7000/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://192.168.1.101:7000/centos/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - 163.com
baseurl=http://192.168.1.101:7000/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://192.168.1.101:7000/centos/RPM-GPG-KEY-CentOS-7
epel-nginx.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://192.168.1.101:7000/epel/7/$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
baseurl=http://192.168.1.101:7000/epel/7/$basearch/debug
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
baseurl=http://192.168.1.101:7000/epel/7/SRPMS
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
MariaDB-nginx.repo
# MariaDB 10.2 CentOS repository list - created 2017-07-03 06:59 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://192.168.1.101:7000/mariadb/yum/10.3/centos7-amd64
gpgkey=http://192.168.1.101:7000/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
刷新 yum 源
yum clean all
yum makecache