リバースプロキシ リバースプロキシとは、プロキシサーバーを介してユーザーのアクセス要求を受信し、ユーザーに代わって内部サーバーへの要求を再開し、最終的に内部サーバーの応答情報をユーザーに返すことを指します。このように、プロキシ サーバーは外部からはサーバーのように見え、内部サーバーにアクセスするクライアントは実際の Web サイト アクセス ユーザーの代わりにプロキシ サーバーを使用します。 リバースプロキシを使用する理由
リバースプロキシの例 環境説明 2 つのサーバー AB があるとします。サーバー A は Web リソースを提供し、イントラネットからのみアクセスできます。サーバー B には 2 つのネットワーク カードがあり、1 つはサーバー A と同じイントラネット内にあり、もう 1 つは外部ネットワーク内にあります。この時点では、ユーザー C がサーバー A に直接アクセスすることはできません。このとき、ユーザー C のリクエストはサーバー B を介してアクセスできます。
仮想ホストの設定 moli-04 マシン上の仮想ホスト構成ファイルを編集します。内容は次のとおりです。 [root@moli-04 extra]$ cat blog.syushin.org.conf サーバ{ 聞く 80; サーバー名 blog.syushin.org; 位置 / { プロキシパス http://192.168.30.7; proxy_set_header ホスト $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ホストファイルを変更する Windowsのhostsファイルを変更し、設定を追加する 192.168.93.129 ブログ ブラウザテスト アクセスアドレスは192.168.93.129で、インターフェースにマシン05のページが表示され、設定は成功しています。 負荷分散 負荷分散機能
負荷分散クラスターが実行中の場合、通常、1 つ以上のフロントエンド ロード バランサーを介して、クライアント アクセス要求がバックエンド サーバーのグループに送信されます。 Nginx 負荷分散 厳密に言えば、Nginx は Nginx Proxy のリバースプロキシとしてのみ使用されますが、このリバースプロキシ機能の効果は負荷分散マシンの効果であるため、nginx ロードバランシングは特殊なリバースプロキシです。 Nginx 負荷分散を実装するための主なコンポーネントは次のとおりです。
アップストリームモジュールの紹介 ngx_http_upstream_module モジュールでサポートされているプロキシ方式には proxy_pass、fastcgi_pass などがあり、主に proxy_pass が使用されます。 アップストリーム モジュールを使用すると、nginx は 1 つ以上のノード サーバー グループを定義できます。これを使用すると、Web サイト リクエストは proxy_pass プロキシを介して定義された対応するノード グループに送信されます。 例: ノード サーバー プールの作成 アップストリームブログ サーバー 192.168.30.5:80 重み=5; サーバー 192.168.30.6:81 重み=10; サーバー 192.168.30.7:82 重み=15; } 重みに加えて、ノード サーバーのステータス値を次のように設定することもできます。 ドメイン名をアップストリームで使用する アップストリームブログ2{ サーバー www.syushin.com weight=5; サーバー blog.syushin.org がダウンしました。 サーバー blog.syushin.cc のバックアップ; } スケジューリングアルゴリズム rr ポーリング (デフォルトのスケジューリング アルゴリズム、静的スケジューリング アルゴリズム) クライアント要求の順序に従って、クライアント要求を異なるバックエンド ノード サーバーに 1 つずつ分散します。 wrr (重み付けラウンドロビン、静的スケジューリング アルゴリズム) 重みは rr ポーリングに基づいて追加されます。このアルゴリズムを使用する場合、重みはユーザー アクセスに比例します。重みの値が大きいほど、転送されるリクエストが多くなります。 上流プール{ サーバー 10.0.0.1 重み=1; サーバー 10.0.0.2 重み=2; } ip_hash (静的スケジューリングアルゴリズム) 各リクエストは、クライアント IP のハッシュ結果に従って割り当てられます。新しいリクエストが到着すると、クライアント IP は最初にハッシュ アルゴリズムによって値にハッシュされます。後続のクライアント リクエストでは、クライアント IP のハッシュ値が同じである限り、同じサーバーに割り当てられます。 アップストリームブログプール{ ip_ハッシュ; サーバー 192.168.30.5:80; サーバー 192.168.30.6:8090; } 注意: ip_hash を使用する場合、重みとバックアップは許可されません。 least_connアルゴリズム least_conn アルゴリズムは、バックエンド サーバーへの接続数に基づいて分散を決定し、接続数が最も少ないサーバーに、より多くのリクエストが割り当てられます。 上記に挙げた(一般的に使用される)スケジューリング アルゴリズムの他にも、ここでは 1 つ 1 つ挙げていない多くのアルゴリズムがあります。 http_proxy_module モジュール http_proxy_module はリクエストを別のサーバーに転送できます。リバース プロキシでは、指定された URI が location 関数を通じて照合され、一致する URI に一致するリクエストが proxy_pass を通じて定義された上流ノード プールにスローされます。 http_proxy モジュールのパラメータ
Proxy_pass の使用法 形式: proxy_pass URL; 次に例を示します。
URL はドメイン名、IP アドレス、またはソケット ファイルになります。 proxy_pass 設定に関して注意すべき点がいくつかあります。
例2
例3
例4
server_name が blog.syushin.com の場合、http://blog.syushin.com/uploa... をリクエストすると、上記の例 1-4 のリクエスト結果は次のようになります。
さて、今回の記事は以上です。今後とも123WORDPRESS.COMをよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQL の binlog_format モードと設定の詳細な分析
>>: Amap を使用した React 実装例 (react-amap)
異なるブラウザ間でページの表示を一致させるためには、フロントエンド開発において CSS スタイルのク...
目次過去1週間の時間を取得する過去1か月の時間を取得する過去3か月分を取得新しい Date() と ...
目次序文1. NJSモジュールをインストールする方法1: NJSモジュールを動的にロードする方法2:...
Docker Hub公式サイト1. Pythonミラーを検索するdocker 検索 python 2...
目次MySQL フェデレーテッド クエリ実行戦略。実行計画フェデレーテッドクエリオプティマイザーMy...
目次1.ライフサイクルとは何か2. 読み込みプロセス1.コンストラクタ2. レンダリング3. コンポ...
コンテナデータボリュームとはデータがコンテナ内にある場合、コンテナを削除するとデータは失われます。例...
ページ、特にホームページを作成するときは、通常、Web サイト全体の他のメイン ページにリンクできる...
ルート ルーティング コンポーネント (アプリの下のルート ルーティング コンポーネント。子コンポー...
この記事では、Ubuntu 18.04でのVMware Toolsのインストールと設定について記録し...
目次1. カウントデータが失われる解決2. 明確なデータ損失3.データ損失を選択解決4. Nullポ...
目次Docker デプロイメント Always on クラスターDockerをインストールする建築関...
1. フローティングレイアウト1. 最初に固定幅の div をフロートさせます。ドキュメントフローか...
この記事では、Docker の使用で最もよく使用されるイメージ コマンドとコンテナ コマンドを一覧表...
目次1. 説明2. インストール3. テスト1. 説明Vue Router は、Vue.js の公式...