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

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

推薦する

ウェブページ制作をマスターするために必要な6つのスキルのまとめ

ウェブデザイナーはジェネラリストであると言わざるを得ません。グラフィックデザイナーは、さまざまな特殊...

kindとDockerを使用してローカルKubernetes環境を起動する

導入Kubernetes を使い始めるのに丸一日を費やしたことはありませんか?最近登場したいくつかの...

知っておくべきHTML最適化テクニック

Web ページのパフォーマンスを向上させるために、多くの開発者は、JavaScript、画像の最適化...

CentOS7 は Docker のバージョン 19 をデプロイします (簡単なので、従ってください)

1. 依存パッケージをインストールする [root@localhost ~]# yum insta...

Ubuntu 18.04 は pyenv、pyenv-virtualenv、virtualenv、Numpy、SciPy、Pillow、Matplotlib をインストールします

1. 現在、Pythonのバージョン管理ツールは数多く存在します。その中でも比較的使いやすいのがPy...

...

MySQL 5.1 のパスワードを変更し、MySQL データベースにリモートでログインする方法

mysql ユーザーを作成し、承認します。形式: 「ユーザー パスワード」で識別されるユーザー@ログ...

Python3.6-MySql 挿入ファイルパス、バックスラッシュをなくす解決策

以下のように表示されます。上記のように、置き換えるだけです。 Python3.6-MySql でファ...

Vue3 Vue イベント処理ガイド

目次1. 基本的なイベント処理2. 親コンポーネントにカスタムイベントを送信するマウス修飾子4. キ...

CSSカスケーディングメカニズムについての簡単な説明

CSS にカスケード メカニズムがあるのはなぜですか? CSS では、同じ要素の特定のプロパティに同...

JavaScriptを使って動的にテーブルを生成するケースの詳しい説明

目次序文実装のアイデア実装コード成果を達成する序文これは、テーブルを動的に追加する例です。[追加] ...

dockerを使用してGrafana+Prometheus構成をデプロイする

docker-compose-monitor.yml バージョン: '2' ネットワ...

Linux Cron によるパラメータ付き PHP コードのスケジュール実行

1. 引き続き PHP スクリプトを使用して実行します。コマンドラインに入力: php /home/...

Windows Server 2019 のセットアップ方法 (画像とテキスト付き)

1. Windows Server 2019 のインストールVmware に Windows Se...

MySQL テーブル結合クエリでグループ化と重複排除を実装する例

目次ビジネスロジックデータテーブル構造クエリロジックSQL スクリプトスクリプトの説明ビジネスロジッ...