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

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

推薦する

メタビューポートはiPhoneでウェブページをフルスクリーン表示コントロールします

困り果てて、ふと、私がよく行くSinaのタッチスクリーン版はどうやって作られているのだろう?と考えま...

HTML 編集の基礎 (初心者必読)

DREAMWEAVER を開き、新しい HTML を作成します。 。ボディの特性: bgcolor...

Vueはローカルストレージの追加、削除、変更機能を実装します

この記事では、ローカルストレージの追加、削除、変更を実装するためのVueの具体的なコードを例として紹...

Linux でファイル権限を変更する chmod コマンドの詳細な分析

Linux chmodコマンドを使用して、ターゲット ファイルにアクセス、読み取り、書き込み、または...

JavaScript にはすでに Object があるのに、なぜ Map が必要なのでしょうか?

目次1. オブジェクトをマップとして扱わない1. 未定義のプロパティはプロトタイプチェーンを通じてア...

Docker で Harbor パブリック リポジトリを構築する方法の例

前回のブログ投稿では、レジストリのプライベート ウェアハウスについて説明しました。今日は、Harbo...

CSS でデジタル ページング効果のコードと手順を実装する方法

かなりの数のウェブサイトがデジタルページング効果を使用しています。たとえば、このサイトのページングも...

Vueのリストレンダリングの詳細な説明

目次1. v-for: 配列の内容を走査する(よく使われる) 2. v-for: オブジェクトのプロ...

Win10+Ubuntu 20.04 LTS デュアル システム インストール (UEFI + GPT) (画像とテキスト、複数の画像には注意)

Win10 のインストール (すでにインストールされている場合はスキップしてください) win10...

HTML テーブルタグチュートリアル (21): 行の境界線の色属性 BORDERCOLOR

テーブルを美しくするために、行ごとに異なる境界線の色を設定できます。基本的な構文<TR 境界線...

Typescript の as、疑問符、感嘆符の詳細な説明

1. asキーワードはアサーションを示すTypescript では、アサーションを表現する方法が 2...

CSS3 で背景の透明化と不透明テキストを実装するサンプルコード

最近、画像上に半透明の背景でテキストを表示する必要があるという要件に遭遇しました。その効果は次のよう...

Nginx で複数のドメイン名がドメインをまたいでアクセスできるようにマップを使用する方法

一般的なNginx構成ではクロスドメインが可能 サーバー{ 11111 を聞いてください。 serv...

Mysql での結合操作

結合の種類1. 内部結合: 結合関係を持つ 2 つのテーブル内のフィールドは、結合関係を満たすレコー...