nginxリバースプロキシのyum設定の詳細な手順

nginxリバースプロキシのyum設定の詳細な手順

パート0 背景

社内のイントラネットサーバーは直接インターネットにアクセスすることはできませんが、外部ネットワークとの通信や時刻同期などを行うために、インターネットにアクセスするサーバーを複数指定します。ここでは、インターネットにアクセスできるマシンをプロキシとして使用し、イントラネットで使用するための yum リポジトリを作成します。

パート1 環境

イントラネット DNS (推奨されますが、IP を代わりに使用できるため必須ではありません)

インターネットにアクセスできるサーバーA

インターネットにアクセスできないサーバーはサーバーAと通信できる

パート2 nginxのインストール

外部ネットワークに接続できるAにnginxをインストールする

yum で nginx をインストール

パート3 nginxの設定

ホストAにnginx設定を追加する

$ cd /etc/nginx/conf.d
$ vim プロキシ.conf
サーバー{
  聞く 80;
  #聞く [::]:80;
  server_name mirrors.yourdomain.com;
  インデックス index.html index.htm index.php default.html default.hm default.php;
  ルート /home/wwwroot/html;

  場所 /ubuntu/ {
   proxy_pass http://mirrors.aliyun.com/ubuntu/ ;
  }

  場所 /centos/ {
   proxy_pass http://mirrors.aliyun.com/centos/ ;
  }

  場所 /epel/ {
   proxy_pass http://mirrors.aliyun.com/epel/ ;
  }
 }

part.4 yumリポジトリソースの設定

外部ネットワークに接続できないホスト B のリポジトリ ファイルを変更します。

$ cat /etc/yum.repos.d/CentOS-7.repo
[ベース]
name=CentOS-$releasever - ベース - mirrors.yourdomain.com
フェイルオーバー方法=優先度
ベースURL=http://mirrors.yourdomain.com/centos/$releasever/os/$basearch/
  http://mirrors.yourdomain.com/centos/$releasever/os/$basearch/
#ミラーリスト=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
gpgcheck=1
gpgkey=http://mirrors.yourdomain.com/centos/RPM-GPG-KEY-CentOS-7

#リリースされたアップデート 
[更新]
name=CentOS-$releasever - アップデート - mirrors.yourdomain.com
フェイルオーバー方法=優先度
ベースURL=http://mirrors.yourdomain.com/centos/$releasever/updates/$basearch/
  http://mirrors.yourdomain.com/centos/$releasever/updates/$basearch/
#ミラーリスト=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
gpgcheck=1
gpgkey=http://mirrors.yourdomain.com/centos/RPM-GPG-KEY-CentOS-7

#役に立つかもしれない追加パッケージ
[特典]
name=CentOS-$releasever - 追加情報 - mirrors.yourdomain.com
フェイルオーバー方法=優先度
ベースURL=http://mirrors.yourdomain.com/centos/$releasever/extras/$basearch/
  http://mirrors.yourdomain.com/centos/$releasever/extras/$basearch/
#ミラーリスト=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
gpgcheck=1
gpgkey=http://mirrors.yourdomain.com/centos/RPM-GPG-KEY-CentOS-7

#既存のパッケージの機能を拡張する追加パッケージ
[セントオスプラス]
name=CentOS-$releasever - プラス - mirrors.yourdomain.com
フェイルオーバー方法=優先度
ベースURL=http://mirrors.yourdomain.com/centos/$releasever/centosplus/$basearch/
  http://mirrors.yourdomain.com/centos/$releasever/centosplus/$basearch/
#ミラーリスト=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
gpgcheck=1
有効=0
gpgkey=http://mirrors.yourdomain.com/centos/RPM-GPG-KEY-CentOS-7

#contrib - Centos ユーザーによるパッケージ
[投稿]
name=CentOS-$releasever - 貢献 - mirrors.yourdomain.com
フェイルオーバー方法=優先度
ベースURL=http://mirrors.yourdomain.com/centos/$releasever/contrib/$basearch/
  http://mirrors.yourdomain.com/centos/$releasever/contrib/$basearch/
#ミラーリスト=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
gpgcheck=1
有効=0
gpgkey=http://mirrors.yourdomain.com/centos/RPM-GPG-KEY-CentOS-7

パート5 ホストの設定

$ cat /etc/hosts

127.0.0.1 ローカルホスト ローカルホスト.ローカルドメイン ローカルホスト4 ローカルホスト4.ローカルドメイン4
::1 ローカルホスト ローカルホスト.ローカルドメイン ローカルホスト6 ローカルホスト6.ローカルドメイン6
192.168.1.193 ミラー.yourdomain.com
# AホストのIPと背後のリバースプロキシアドレスを確認します

パート6 iptablesの設定

mirrors.yourdomain.com にpingします
#エラー: ホストへのルートがありません

このとき、ホスト B の iptables 情報を確認すると、ポート 80 にアクセスできないことがわかります。先頭にルールを追加できます。

$ iptables -nvL

 8155 28M すべてを受け入れる -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED、ESTABLISHED
 0 0 すべてを受け入れる -- lo * 0.0.0.0/0 0.0.0.0/0   
11761 985K INPUT_direct すべて -- * * 0.0.0.0/0 0.0.0.0/0   
11761 985K INPUT_ZONES_SOURCE すべて -- * * 0.0.0.0/0 0.0.0.0/0   
11761 985K INPUT_ZONES すべて -- * * 0.0.0.0/0 0.0.0.0/0   
 0 0 すべて削除 -- * * 0.0.0.0/0 0.0.0.0/0 ctstate 無効
11756 985K すべてを拒否 -- * * 0.0.0.0/0 0.0.0.0/0 icmp-host-prohibited による拒否
$ iptables -I 入力 -p tcp --dport 80 -j 受け入れる

パート7 テスト成功

ホスト B で yum makecache 操作を実行します。 yum 操作を実行できるかどうかを判断します。

$ yum すべてをクリーン
$ yum メイクキャッシュ

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • Nginx リバース プロキシ構成の完全なプロセス記録
  • 中国語でのNginx設定パラメータの詳細な説明(負荷分散とリバースプロキシ)
  • Nginx フォワード プロキシとリバース プロキシ、および負荷分散機能の構成コード例
  • SSL で Nginx リバース プロキシを構成する簡単な手順
  • Nginxリバースプロキシ設定でプレフィックスが削除される
  • nginxリバースプロキシwebSocket設定の詳細な説明
  • リバースプロキシ設定を実装するためのユニバーサルnginxインターフェース
  • プレフィックスケースを削除する Nginx リバース プロキシ構成のチュートリアル

<<:  MySQLのINサブクエリによってインデックスが使用できなくなる問題を解決する

>>:  Javascript における分割代入構文の詳細な説明

推薦する

さまざまな環境での Docker Compose のインストール方法

1. オンラインインストール現在、Linux x86アーキテクチャのオンラインインストールのみを試し...

HTML リンク アンカー タグと SEO におけるその役割の概要

<a> タグは主に、ハイパーリンクまたはアンカー リンクとも呼ばれるリンクとブックマーク...

Web インタビュー: MVC と MVVM の違いと、Vue が MVVM に完全に準拠していない理由

目次MVCとMVVMの違い前述のMVCC の概要長所と短所MVVM概要MVVM 実装者 — Vue ...

MySQL における in と exists の使い方と違いの紹介

まずコードを書いて (int i=0;i<1000;i++){ (int j=0;j<5...

MySQL 8.0 WITH クエリの詳細

目次MySQL 8 の WITH クエリについて学ぶ1. 例3. 練習するMySQL 8 の WIT...

Navicat for MySQL 11 登録コード\アクティベーションコードの概要

おすすめの読み物: Navicat12.1シリーズのクラッキングとアクティベーションのチュートリアル...

CSS スタイルの競合を解決するいくつかの方法 (要約)

1. セレクターを調整するコンビネータを使用すると、セレクターの説明をより正確に記述できます (C...

Nginx でバージョン番号を隠したり偽造したりする方法

1. デフォルトでアクセスするには、curl コマンドを使用します。 # curl -I http:...

MySQLソートにおけるCASE WHENの使用例

序文以前のプロジェクトでは、SQL の CASE WHEN ソート関数が使用されました。ではブログメ...

CSS の境界線を通して三角形と矢印を実装するサンプルコード

1. CSS ボックスモデルボックスには、余白、境界線、パディング、コンテンツが含まれます境界線の接...

MySQL データベースの高度なクエリとマルチテーブルクエリ

MySQL マルチテーブルクエリワークシートを追加する -- ユーザーテーブル (ユーザー) テーブ...

MySQL全文インデックスの原理と欠点

MySQL フルテキスト インデックスは、特定のテーブルの特定の列に表示されるすべての単語のリストを...

nginx を https をサポートするように設定するためのサンプル コード

1. はじめにあなたのウェブサイトはまだインターネット上に公開されたままですか?ここでは、HTTPS...

MySQLストアドプロシージャを変更する詳細な手順

序文実際の開発では、ビジネス要件が変更されることが多いため、ストアド プロシージャの特性を変更するこ...

Javascript デザインパターン プロトタイプ モードの詳細

目次1. プロトタイプモード例1例2例3 2. オブザーバーパターン1. プロトタイプモードプロトタ...