通过nginx 配置正向代理yum源,供内网使用yum方式安装应用服务

艺帆风顺 发布于 2025-04-03 22 次阅读


本文参考了: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:18000failovermethod=prioritybaseurl=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=1gpgkey=http://192.168.0.164:18000/centos/RPM-GPG-KEY-CentOS-7
    #released updates[updates]name=CentOS-$releasever - Updates - 192.168.0.164:18000failovermethod=prioritybaseurl=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=1gpgkey=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:18000failovermethod=prioritybaseurl=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=1gpgkey=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:18000failovermethod=prioritybaseurl=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=1enabled=0gpgkey=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:18000failovermethod=prioritybaseurl=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=1enabled=0gpgkey=http://192.168.0.164:18000/centos/RPM-GPG-KEY-CentOS-7

    epel源

    vim epel.repo
      [epel]name=Extra Packages for Enterprise Linux 7 - $basearchbaseurl=http://192.168.0.164:18000/epel/7/$basearchfailovermethod=priorityenabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
      [epel-debuginfo]name=Extra Packages for Enterprise Linux 7 - $basearch - Debugbaseurl=http://192.168.0.164:18000/epel/7/$basearch/debugfailovermethod=priorityenabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7gpgcheck=1
      [epel-source]name=Extra Packages for Enterprise Linux 7 - $basearch - Sourcebaseurl=http://192.168.0.164:18000/epel/7/SRPMSfailovermethod=priorityenabled=0gpgkey=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

      正确的结果如下:

        版权声明:本文内容来自CSDN:打篮球两年半,遵循CC 4.0 BY-SA版权协议上原文接及本声明。本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。原文链接:https://blog.csdn.net/qq_39677803/article/details/126849441如有涉及到侵权,请联系,将立即予以删除处理。在此特别鸣谢原作者的创作。此篇文章的所有版权归原作者所有,与本公众号无关,商业转载建议请联系原作者,非商业转载请注明出处。