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 における分割代入構文の詳細な説明

推薦する

Vue3 を使用して虫眼鏡効果を実現する方法の例

目次序文1. カプセル化の重要性2. どのようにカプセル化しますか? 1. 準備2. 梱包を開始する...

ページ切り替え効果を作成するための純粋な CSS3 のサンプルコード

前に書いたものは複雑すぎるので、シンプルなコアにしましょう <html> <ヘッド...

きちんとした標準的なHTMLタグの書き方を学ぶ

優れた HTML コードは美しい Web サイトの基礎となります。私が CSS を教えるときは、まず...

均一なアニメーション効果を実現するJavaScript

この記事の例では、JavaScriptで等速アニメーションを実装するための具体的なコードを参考までに...

ウェブページ(ウェブサイト)のデザインと制作に関する考えや経験の共有

まずは投稿する前に! 「I Want to Study on My Own!」に改めて感謝します。た...

SpringBoot と Vue の相互作用におけるクロスドメイン問題の解決策

目次ブラウザ同一生成元ポリシー1. VUEフロントエンド構成プロキシはクロスドメインの問題を解決しま...

スパンの最小高さを定義するソリューションは効果がありません

span タグは HTML ウェブページを作成するときによく使用されますが、このタグの使い方がよくわ...

大量のデータをMySQLにインポートする際に発生する問題と解決策の分析

プロジェクトでは、SQL を使用してデータ分析を実行するために、大量のデータをデータベースにインポー...

Ubuntu 19でdockerソースをインストールできない問題を共有する

主要な Web サイトと個人的な習慣に従って、Docker ソースを追加するには次の方法を使用します...

7つの便利なTypeScriptの新機能

目次1. オプションの連鎖2. NULL値の結合3. 再帰型エイリアス4. アサーション署名5. P...

MACでMYSQLデータベースのパスワードを忘れた場合の解決策

Mac オペレーティングシステムで MYSQL データベースのパスワードを忘れた場合の簡単な解決策1...

CSS を使用して固定左列と適応右列の 2 列レイアウトを実現する 4 つの方法

1. フロート+オーバーフロー:非表示このメソッドは主にオーバーフローを通じて BFC をトリガーし...

MySQL 更新セットとの違い

目次問題の説明原因分析解決問題の説明最近、奇妙な問い合わせを受けました。更新ステートメントはエラーな...

Windows Server 2016 に Docker をインストールするプロセスと発生した問題

前提条件Windows Server でコンテナーを実行するには、Windows Server (半...

mysql5.6 以前のデータベースで json をクエリする方法

MySQLにデータを保存するとき、乱雑であまり使用されないデータがJSONフィールドに投げ込まれるこ...