1. Nginxのインストールと設定
Nginxサーバーでファイアウォールを一時的に無効化した状態で作業を進める。
# Nginxのインストール
[root@proxy-server ~]# yum install nginx -y
# 設定ファイルの作成
[root@proxy-server ~]# cd /etc/nginx/conf.d/
[root@proxy-server conf.d]# vim yum-proxy.conf
以下の逆プロキシ設定を記述する:
server {
listen 80;
server_name mirror.local.net;
# Baseリポジトリの代理転送
location /centos/ {
proxy_pass http://mirrors.aliyun.com/centos/;
proxy_set_header Host mirrors.aliyun.com;
proxy_set_header X-Real-IP $remote_addr;
}
# EPELリポジトリの代理転送
location /epel/ {
proxy_pass http://mirrors.aliyun.com/epel/;
proxy_set_header Host mirrors.aliyun.com;
proxy_set_header X-Real-IP $remote_addr;
}
}
設定の検証とサービス再起動:
[root@proxy-server conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@proxy-server conf.d]# systemctl restart nginx
2. クライアント側のYUM設定
リポジトリ定義ファイルのbaseurlをNginxサーバーのアドレスに置換する。
CentOS-Base.repoの設定
# /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
failovermethod=priority
baseurl=http://mirror.local.net/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.local.net/centos/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-$releasever - Updates
failovermethod=priority
baseurl=http://mirror.local.net/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.local.net/centos/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-$releasever - Extras
failovermethod=priority
baseurl=http://mirror.local.net/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.local.net/centos/RPM-GPG-KEY-CentOS-7
[centosplus]
name=CentOS-$releasever - Plus
failovermethod=priority
baseurl=http://mirror.local.net/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.local.net/centos/RPM-GPG-KEY-CentOS-7
[contrib]
name=CentOS-$releasever - Contrib
failovermethod=priority
baseurl=http://mirror.local.net/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.local.net/centos/RPM-GPG-KEY-CentOS-7
epel.repoの設定
# /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://mirror.local.net/epel/7/$basearch
failovermethod=priority
enabled=1
gpgcheck=0
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
baseurl=http://mirror.local.net/epel/7/$basearch/debug
failovermethod=priority
enabled=0
gpgcheck=0
[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
baseurl=http://mirror.local.net/epel/7/SRPMS
failovermethod=priority
enabled=0
gpgcheck=0
3. hostsファイルの編集
クライアントのhostsファイルにNginxサーバーのIPアドレスとホスト名をマッピングする:
[root@client-host ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.10 mirror.local.net
※192.168.100.10はNginxプロキシサーバーのIPアドレス
4. 動作確認
# ネットワーク接続テスト
[root@client-host ~]# ping -c 3 mirror.local.net
# YUMキャッシュの生成
[root@client-host ~]# yum makecache
# リポジトリ一覧の確認
[root@client-host ~]# yum repolist
yum makecacheが正常に完了すれば、Nginx逆プロキシを経由したYUMアクセスが機能している。