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 アーキテクチャ

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

推薦する

Ubuntuにmysql5.7.10を手動でインストールする

このチュートリアルでは、UbuntuにMySQL 5.7.10を手動でインストールする手順を参考まで...

Mysql5.7.17 winx64.zip 解凍バージョンのインストールと設定のグラフィックチュートリアル

1. mysql-5.7.17-winx64.zip をダウンロードします。リンク: https:/...

CentOS7 に ElasticSearch 6.4.1 をインストールするための詳細なチュートリアル

1. ElasticSearch 6.4.1 インストール パッケージを次の場所からダウンロードしま...

HTML は Double 11 クーポン取得を実装します (クーポン取得ページを開く時間を設定します)

さっそく、コードを直接投稿します。具体的なコードは次のとおりです。 <!DOCTYPE htm...

JS 非同期実行の原則とコールバックの詳細

1. JSの非同期実行の原則JavaScript はシングルスレッドですが、ブラウザはマルチスレッド...

CSS3アニメーションジャミングソリューションについての簡単な説明

なぜ詰まっているのでしょうか?言及しなければならない前提があります。フロントエンド開発者は皆、ブラウ...

固定ボトムコンポーネントを実装した Vue の例

目次【効果】 【実施方法】 【効果】 【実施方法】 <テンプレート> <div i...

MySQL でテーブルを作成するときの NULL と NOT NULL の使用方法の詳細な説明

MySQL の仕様によっては、テーブル作成仕様にすべてのフィールドが空であってはならないという要件を...

Linux 仮想ホストで SourceGuardian (sg11) 暗号化コンポーネントを有効にする詳細な手順

注: sg11 弊社では Linux システム仮想ホストのセルフインストールのみサポートしております...

Nginx 仮想ホスト (IP ベース) を構成する 3 つの方法の詳細な説明

Nginx は、IP ベースの仮想ホスト構成、ポート ベースの仮想ホスト構成、ドメイン名ベースの仮想...

Centos7.2 で mysql5.7 データベースをインストールするための詳細な手順

サーバー上の mysql はバージョン 8.0.12 でインストールされており、ローカルのものはバー...

JavaScript 上級プログラミング: 変数とスコープ

目次1. 元の値と参照値2. インスタンス3. 範囲1. 元の値と参照値6 つの単純なデータ型の値は...

MySQL パフォーマンス チューニングについて知っておくべき 15 個の重要な変数 (要約)

序文: MYSQL は最も人気のある WEB バックエンド データベースです。最近、NOSQL がま...

Linux の Docker コンテナで bash を終了する 2 つの方法

bash を終了する場合は、次の 2 つのオプションがあります。最初のもの: Ctrl + d を押...

XHTML コードで Marquee タグを使用する方法

フォーラムで、ネットユーザーの jeanjean20 が、Marquee を標準に適合させる方法につ...