Nginx リバース プロキシを使い始める

Nginx リバース プロキシを使い始める

概要

Nginx リバース プロキシ: リバース プロキシとは、サーバーがクライアントの要求に基づいて 1 つ以上のバックエンド サーバー グループ (Web サーバーなど) からリソースを取得し、それらのリソースをクライアントに返すことを意味します。クライアントはリバース プロキシの IP アドレスのみを認識しますが、プロキシ サーバーの背後にあるサーバー クラスターの存在は認識しません。

リバースプロキシの役割

  • サーバー(クラスター)のIPアドレスをクライアントから隠す
  • セキュリティ: アプリケーション層ファイアウォールとして、Web ベースの攻撃 (DoS/DDoS など) から Web サイトを保護し、マルウェアの検出を容易にします。
  • バックエンドサーバー(クラスター)に統合暗号化と SSL アクセラレーション(SSL ターミナルプロキシなど)を提供する
  • 負荷分散: クラスター内に負荷の高いサーバーがある場合、リバース プロキシは URL を書き換え、接続要求に応じて負荷の低いサーバーから同じリソースまたはバックアップを取得します。
  • 静的コンテンツや、短期間に大量のアクセス要求がある動的コンテンツに対するキャッシュサービスを提供します。
  • 一部のコンテンツを圧縮して帯域幅を節約したり、ネットワーク帯域幅の狭いネットワークにサービスを提供したりします。
  • アップロード速度を遅くする
  • HTTPアクセス認証を提供する

Nginx リバース プロキシ イントラネット侵入 8081 ポートの実践

目的: ポート8081を隠し、ポート80にアクセスしてポート80にアクセスする

実装手順

ポート8081でAPIを設定し、正常にデプロイしました。これで8081は公開され、アクセスできるようになりました。

Ubuntu環境を例に挙げる

$ cd /etc/nginx/
nginx.conf をダブルクリックします。

次のように、Nginx httpノードのポート8081のリバースプロキシを設定します。

 サーバー{
        80 default_server をリッスンします。
        リッスン [::]:80 default_server;
        場所 /api/ {
                        プロキシパス http://127.0.0.1:8081;
                }

                場所 /apidocs/ {  
                        proxy_pass http://localhost:8081/api/;
                        swagger-ui.html をインデックスします。
                        エラーページ 404 http://localhost:8081/api/swagger-ui.html;
                }
         }

設定が完了したら、Nginxサービスを再起動します。

$ サービス nginx を再起動します

http://ip/apidocs/swagger-ui.html に正常にアクセスしました

サーバーセキュリティグループルールをオフにし、8081ポートセキュリティグループルールを削除して、Alibaba Cloudにログインして設定することができます。Alibaba Cloudを例に挙げましょう。他のものも同様です。

http://ip/apidocs/swagger-ui.html は引き続きアクセス可能です

http://ip:8081/api/swagger-ui.html にアクセスできません

これまでのところ、ポート80にアクセスし、ポート8081にプロキシすることで、nginxリバースプロキシポート8081の目的を達成しました。

Ngnixのロケーションとproxy_passフィールドのルールを理解することに重点を置く

実装方法2:アップストリームを構成する

httpノードの下にupstreamノードを追加します

アップストリームデモ{ 
   サーバーIP:8080; 
   サーバーIP:8081; 
}

サーバーノードの下のロケーションノードでproxy_passをhttp:// + アップストリーム名に設定します。

位置 / { 
      proxy_pass http://demo; 
}

Nginx 構成の https サポート

 ##
        # cnn SSL設定を追加
        ##
        サーバ{
                聞く 443;
                サーバー名 demo.com;
                sslオン;
                ssl_certificate /etc/nginx/cert/test.pem;
                ssl_certificate_key /etc/nginx/cert/test.key;
                ssl_session_timeout 5分;
                位置 / {
                							#ルートドメイン名またはIP
                                proxy_pass http://demo.com;
                        }
        }

要約する

Nginx リバース プロキシの紹介に関するこの記事はこれで終わりです。Nginx リバース プロキシに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Nginxリバースプロキシはさまざまな状況でのクロスドメインの問題を解決します
  • Nginx ルーティング転送とリバースプロキシロケーション構成の実装
  • Nginx イントラネット スタンドアロン リバース プロキシの実装
  • Nginx リバース プロキシ学習例チュートリアル
  • nginx リバースプロキシと詳細な使用方法

<<:  MySQL の高可用性アーキテクチャの完全な説明: MHA アーキテクチャ

>>:  テキストエリアのテキスト入力領域に改行を実装する方法

推薦する

JavaScript で実装された 7 つのソート アルゴリズムの概要 (推奨!)

目次序文バブルソート基本アルゴリズム2 番目の書き方は、基本的なアルゴリズムに基づいて改良されていま...

Dockerコンテナを作成、起動、停止する方法

1. コンテナとは、独立して実行されるアプリケーション、またはアプリケーションのグループとその動作環...

MySQLのタイムゾーンを表示および設定する方法

1. データベースのタイムゾーンを確認する '%time_zone' のような変数を...

MySQL プロセス制御 IF()、IFNULL()、NULLIF()、ISNULL() 関数

MySQL では、IF()、IFNULL()、NULLIF()、および ISNULL() 関数を使用...

Helloダイアログボックスのデザイン体験の共有

「どうしたの?」特定の種類のダイアログ ボックスに慣れていない限り、ダイアログ ボックスが表示された...

クロスドメインの問題を解決するためのNginxの実用的な方法

フロントエンドとバックエンドを分離し、nginxを使用してクロスドメインの問題を解決するフロントエン...

フロントエンドに必要なNginx設定の詳細な説明

Nginx (エンジン x) は、軽量で高性能な HTTP およびリバース プロキシ サーバーであり...

Webpack5-react スキャフォールディングをゼロから構築するための実装手順 (ソースコード付き)

目次ウェブパック5公式スタート建築ガイド構築を開始する依存する準備が完了したら、プロジェクトの構築を...

Dockerコンテナの原理の分析

目次01 コンテナの本質とは何か? 02 Cgroupテクノロジーと名前空間テクノロジーの概要03 ...

HTMLページにビデオを挿入する方法の概要

ページでビデオ タグを使用する場合は、Ogg Theora または VP8 (これに問題がない場合)...

Facebook 出会い系サイトデザインのユーザー エクスペリエンス分析

<br />関連記事: Facebookの情報アーキテクチャの分析 元記事: http:...

CentOS7 64ビットインストールmysqlグラフィックチュートリアル

MySQL をインストールするための前提条件: CentOS 7 64 ビットをインストールし、Ce...

Navicat の MySQL へのリモート接続が遅い理由の詳細な説明

最終的な解決策は最後の写真にありますリモート データベース ( Linux システム) に接続したと...

Docker での MySQL 8.0.20 のインストールと設定のチュートリアル

Dockerは参考までにMySQLバージョン8.0.20をインストールします。具体的な内容は以下のと...

Win10にCentOS7仮想マシンをインストールする

1. VMware Workstation 64バージョンをダウンロードするhttps://www....