本文参考了:https://www.cnblogs.com/moonciki/p/10824681.html
但是,他这个文章是不能够成功的,因为nginx未配置proxy_set_header
正确的做法:
外网机器:192.168.0.164 (nginx)
内网机器:192.168.0.199
一、外网机器上面的nginx做如下配置:
值得注意的是,代理的源只能比实际用的repo多或者一样
server{
listen 18000;
server_name 192.168.0.164;
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/;
# 下面三行必加
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $proxy_host;
proxy_set_header X-Real-IP $remote_addr;
}
location /epel/ {
proxy_pass http://mirrors.aliyun.com/epel/;
# 必须
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $proxy_host;
proxy_set_header X-Real-IP $remote_addr;
}
location /docker-ce/ {
proxy_pass http://mirrors.aliyun.com/docker-ce/;
# 必须
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $proxy_host;
proxy_set_header X-Real-IP $remote_addr;
}
}
配置完毕,重启nginx
nginx -s reload
二、内网机器配置yum源
cd /etc/yum.repo.d
Base源
cat CentOS-Base.repo
[base]
name=CentOS-$releasever - Base - 192.168.0.164:18000
failovermethod=priority
baseurl=http://192.168.0.164:18000/centos/$releasever/os/$basearch/
http://192.168.0.164:18000/centos/$releasever/os/$basearch/
# http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://192.168.0.164:18000/centos/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates - 192.168.0.164:18000
failovermethod=priority
baseurl=http://192.168.0.164:18000/centos/$releasever/updates/$basearch/
http://192.168.0.164:18000/centos/$releasever/updates/$basearch/
# http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://192.168.0.164:18000/centos/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - 192.168.0.164:18000
failovermethod=priority
baseurl=http://192.168.0.164:18000/centos/$releasever/extras/$basearch/
http://192.168.0.164:18000/centos/$releasever/extras/$basearch/
# http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://192.168.0.164:18000/centos/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - 192.168.0.164:18000
failovermethod=priority
baseurl=http://192.168.0.164:18000/centos/$releasever/centosplus/$basearch/
http://192.168.0.164:18000/centos/$releasever/centosplus/$basearch/
# http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://192.168.0.164:18000/centos/RPM-GPG-KEY-CentOS-7
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - 192.168.0.164:18000
failovermethod=priority
baseurl=http://192.168.0.164:18000/centos/$releasever/contrib/$basearch/
http://192.168.0.164:18000/centos/$releasever/contrib/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://192.168.0.164:18000/centos/RPM-GPG-KEY-CentOS-7
epel源
vim epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://192.168.0.164:18000/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.0.164:18000/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.0.164:18000/epel/7/SRPMS
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
docker源
cat docker-ce.repo
[docker-ce]
name=Docker-CE Repository
baseurl=http://192.168.0.164:18000/repository/docker-ce-repo/$releasever/$basearch/stable
enabled=0
gpgcheck=1
keepcache=1
gpgkey=http://192.168.0.164:18000/repository/docker-ce-repo/gpg
如果换成自己的可以这样:
sed -i "s/192.168.0.164:18000/你的nginx代理/g" CentOS-Base.repo
sed -i "s/192.168.0.164:18000/你的nginx代理/g" epel.repo
sed -i "s/192.168.0.164:18000/你的nginx代理/g" docker-ce.repo
刷新缓存
yum clean all
yum makecache
正确的结果如下: