Nginx配置yum代理上网
简介
我们在安装centos 服务器时,可能会有以下情况:
局域网内有若干台服务器,但是只有一台服务器可以连接外网,其余服务器都不可以连接外网。
那么我们在使用 yum 安装软件时,可以采用以下方式
- 搭建本地 yum 源、或挂载本地镜像
- 使用nginx 代理 yum 源
环境
机器A:192.168.25.24 ,可以连接外网,需要安装Nginx,作为代理服务器
机器B:192.168.25.25,不能连接外网
安装
在机器A上,yum直接安装Nginx即可。
配置yum代理上网
在机器A上,修改配置文件/etc/nginx/nginx.conf,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | cat > /etc/nginx/nginx.conf <<"EOF" #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server{ listen 18000; server_name 192.168.25.24; 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; } } } EOF |
内网机器B配置yum源
Base和epel源
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | cat > /etc/yum.repos.d/CentOS-Base.repo <<"EOF" [base] name=CentOS-$releasever - Base - 192.168.25.24:18000 failovermethod=priority baseurl=http://192.168.25.24:18000/centos/$releasever/os/$basearch/ http://192.168.25.24:18000/centos/$releasever/os/$basearch/ gpgcheck=0 gpgkey=http://192.168.25.24:18000/centos/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates - 192.168.25.24:18000 failovermethod=priority baseurl=http://192.168.25.24:18000/centos/$releasever/updates/$basearch/ http://192.168.25.24:18000/centos/$releasever/updates/$basearch/ gpgcheck=0 gpgkey=http://192.168.25.24:18000/centos/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras - 192.168.25.24:18000 failovermethod=priority baseurl=http://192.168.25.24:18000/centos/$releasever/extras/$basearch/ http://192.168.25.24:18000/centos/$releasever/extras/$basearch/ gpgcheck=0 gpgkey=http://192.168.25.24:18000/centos/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus - 192.168.25.24:18000 failovermethod=priority baseurl=http://192.168.25.24:18000/centos/$releasever/centosplus/$basearch/ http://192.168.25.24:18000/centos/$releasever/centosplus/$basearch/ gpgcheck=0 enabled=0 gpgkey=http://192.168.25.24:18000/centos/RPM-GPG-KEY-CentOS-7 #contrib - packages by Centos Users [contrib] name=CentOS-$releasever - Contrib - 192.168.25.24:18000 failovermethod=priority baseurl=http://192.168.25.24:18000/centos/$releasever/contrib/$basearch/ http://192.168.25.24:18000/centos/$releasever/contrib/$basearch/ gpgcheck=0 enabled=0 gpgkey=http://192.168.25.24:18000/centos/RPM-GPG-KEY-CentOS-7 EOF cat > /etc/yum.repos.d/epel.repo <<"EOF" [epel] name=Extra Packages for Enterprise Linux 7 - $basearch baseurl=http://192.168.25.24:18000/epel/7/$basearch failovermethod=priority enabled=1 gpgcheck=0 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.25.24:18000/epel/7/$basearch/debug failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 gpgcheck=0 [epel-source] name=Extra Packages for Enterprise Linux 7 - $basearch - Source baseurl=http://192.168.25.24:18000/epel/7/SRPMS failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 EOF |
docker源
1 2 3 4 5 6 7 8 9 | cat docker-ce.repo [docker-ce] name=Docker-CE Repository baseurl=http://192.168.25.24:18000/repository/docker-ce-repo/$releasever/$basearch/stable enabled=1 gpgcheck=0 keepcache=1 gpgkey=http://192.168.25.24:18000/repository/docker-ce-repo/gpg |
最后重建缓存,若以下命令可以执行成功,则说明配置成功:
1 2 | yum clean all yum makecache |
如果换成自己的可以这样:
1 2 3 | sed -i "s/192.168.25.24:18000/你的nginx代理/g" CentOS-Base.repo sed -i "s/192.168.25.24:18000/你的nginx代理/g" epel.repo sed -i "s/192.168.25.24:18000/你的nginx代理/g" docker-ce.repo |