概要 #
アプリケーションの複数のインスタンス間で負荷を分散することは、過負荷と待ち時間を減らし、静的リソースをキャッシュすることで配信を増やすことでパフォーマンスを向上させる優れた方法です。
Nginx は Web サービスで優れた役割を果たしますが、プラットフォームには多くの複雑さがあります。トラフィックが増加すると、セキュリティを犠牲にすることなくレイヤー 4 とレイヤー 7 のトラフィックを負荷分散することが難しくなります。このため、アクセスしやすい UI を通じてビジネス アプリケーションを制御できる、より高度な機能を備えたロード バランサーが必要です。
この記事では、Nginxロードバランサーの設定を RELIANOID ADC。
前提条件 #
このガイドに従うには、次のベンチマークを満たしていることを確認してください。
- のインスタンス RELIANOID アプライアンスはワークステーションまたはクラウド プラットフォームにインストールする必要があります。 評価をリクエストする インスタンスがまだインストールされていない場合。
- ウェブパネルにアクセスできる必要があります。アクセスできない場合は、次の手順に従ってください。 インストールガイド.
- Nginxはあなたにとっては簡単ですが、その負荷分散機能に満足していません。そこで、 RELIANOID 介入する。
- 仮想サーバーは、バックエンドサーバーにトラフィックを分散するために不可欠です。まだ作成していない場合は、このガイドに従ってください。 レイヤー4およびレイヤー7仮想サーバー(ファーム)の作成
基本概念 #
上流の: アップストリームディレクティブは、Webアプリケーションをホストするサーバーのクラスターを定義します。通常、アップストリームはhttpコンテキスト内で定義されます。 RELIANOID ADC、 サービス セクションには、ホスト サーバーを管理するためのバックエンド サブセクションが含まれています。
聞く: listen オプションは、Nginx が Web からの受信トラフィックをリッスンするポートを定義します。 RELIANOID 使用する 仮想ポート 受信トラフィックをリッスンする 農場.
場所: 場所のコンテキストを使用すると、HTML ファイルからデータを取得するためのディレクトリに関する指示を与えることができます。
プロキシパス: このディレクティブは、プロキシサーバーの場所を指定するときに使用されます。通常、場所は 値 アップストリームディレクティブに割り当てられます。 RELIANOID 農場ここで、バックエンド サーバーを含むサービスに接続される IP アドレスとポートを定義します。
サーバ: このディレクティブは、アプリケーションをホストするサーバを、IPv4またはIPv6形式のIPアドレスを使用して指定します。サーバブロックは、 場所 指令、 リスナー include ディレクティブ。サーバーを定義できます RELIANOID を通して以下のようなさまざまな バックエンド のセクションから無料でダウンロードできます。
ssl_ciphers と ssl_protocols: ssl_ciphersおよびssl_protocolディレクティブは、接続を最も強力なまたは最新のSSL/TLSバージョンに制限するときに使用されます。これらのプロトコルには、TLSV1およびTLSV2が含まれます。nginxのデフォルトの暗号は次のとおりです。 HIGH:!aNULL:!MD5暗号を使用し、SSLプロトコルをカスタマイズするには RELIANOID、HTTPSリスナーを使用する必要があります。 HTTPSパラメータ そのファームのグローバル設定内。
設定例: スティッキーセッションの有効化 #
セッション永続性 (スティッキー セッションとも呼ばれる) は、負荷分散で使用される手法で、セッションの期間中、クライアントからの要求がクラスター内の同じサーバーに送信されるようにします。これは、状態を維持したり、ファイルやデータなどのリソースがセッション全体を通じてクライアントで使用可能であることを保証したりするために使用されます。セッション永続性を実装する方法はいくつかあり、Cookie や IP アドレス アフィニティを使用する方法などがあります。使用する方法は、アプリケーションの特定の要件と負荷分散アーキテクチャによって異なります。
Nginx の設定 #
Nginxには主に2つのセッション持続性を有効にする方法があります。 ハッシュIP 負荷分散方法と使用 スティッキークッキー.
ハッシュIP: hash_ip ロード バランシング メソッドは、宛先 IP アドレスと送信元 IP アドレスを取得し、それらを使用して確立された接続の一意の ID を形成します。
アップストリームバックエンドサーバー { hash_ip; サーバー 192.168.0.112; サーバー 192.168.0.115; }
スティッキークッキー: スティッキークッキーを使用するには、 スティッキークッキー アップストリーム コンテキスト内のオプション。
アップストリーム backendServers { server 192.168.0.112; server 192.168.0.116; スティッキー クッキー zensessionid expires=2h domain=.example.com path="/"; }
zensessionid クッキーとそれに関連付けられたサーバーを一意に識別します。上記の構成から、クッキーは 有効期限が切れます 2時です。
RELIANOID 構成 #
使用時にクッキーの永続性を有効にするには RELIANOID ロードバランサー:
- に行く LSLB > 農場 をクリックして、 編集 http ファーム上のアイコン。
- に移動します サービス タブ。
- スクロールして 持続性 のセクションから無料でダウンロードできます。
- クライアントのIPアドレスを使用して永続性を有効にするには、永続性を選択します IP: クライアント 住所。
- クッキーを使用してセッションの永続性を有効にするには、手順4を無視して、 固執 フィールド 持続性なし.
- をオンにする クッキーインサート ボタンを押して 名, ドメイン, path、そして生存時間(TTL) すぐに。
- 設定を更新するには、 Apply
設定例: リダイレクトルールの作成 #
リダイレクト ルールは、Web ページを別の Web ページに自動的にリダイレクトするために使用されます。これは、Web サイトの構造やコンテンツが変更された場合や、ページが新しい場所に移動された場合によく使用されます。リダイレクト ルールを使用すると、ユーザーと検索エンジンが正しいページにリダイレクトされ、リンク切れを防ぐことができます。301 リダイレクト、302 リダイレクト、メタ リフレッシュ リダイレクトなど、使用できるリダイレクトの種類はいくつかあります。使用するリダイレクトの種類は、Web サイトの特定のニーズとリダイレクトの理由によって異なります。
Nginx の設定 #
リダイレクト ルールを作成するには、サーバーまたはロケーション コンテキスト内で return ディレクティブを宣言します。 return ディレクティブは、ユーザーをある URL から別の URL にリダイレクトする場合、またはセキュリティ保護されていないチャネルからセキュリティ保護されたサーバーにリダイレクトする場合に使用します。
Nginx リダイレクト ルールは次の構文に従います。
戻り値 ( 301 | 302 | 303 | 307 ) リダイレクト URL;
以下は、セキュリティ保護されていない http からセキュリティ保護された https の場所にユーザーをリダイレクトする場合のサンプル構成です。
server { # ユーザーを HTTPS にリダイレクトします listen 80; server_name test.relianoid.com www.test.relianoid.com; return 301 https://www.test.relianoid.com$request_uri; }
楽器博物館 $リクエストURI このオプションにより、パスが変更された場合でも、同じドメイン上のすべての http トラフィックが安全な https にリダイレクトされるようになります。
RELIANOID 構成 #
同様の結果を得るには RELIANOID ADC。
- 2つのファームが稼働していることを確認し、 HTTP および HTTPSこの記事を参照してください レイヤー4とレイヤーロードファームの作成方法
- に行く LSLB >> 農場 をクリックして 編集 https ファーム上のアイコン。
- 動画内で サービス タブを開き、設定されているサービスを開いて編集します。設定されていない場合は、 新サービス ボタンをクリックして作成します。
- スクロールして リダイレクト セクションとトグルオン リダイレクトを有効にする.
- リダイレクトタイプを選択 追加、リダイレクトコード 301 リダイレクト先の完全なURLを記述します。この例では、 http://10.0.0.18
- をクリックして設定を更新します Apply
設定例: ヘッダールールの書き換え #
HTTP ヘッダーは、ホストとクライアントがクエリ要求に加えて追加情報を共有するために不可欠です。これらのヘッダーにより、クライアントは好みの言語でリソースにアクセスし、デバイスに最適化された Web ページにアクセスできるようになります。Web サーバーはこの情報を使用して、Cookie ヘッダーを使用してクライアントに提供する情報の種類を最適化する場合があります。
残念ながら、多くのレスポンスヘッダーを使用すると、ハッカーが悪用する可能性のある多くの機密情報が明らかになる可能性があります。したがって、信頼できないヘッダーを削除するか、一部のコンテンツを変更することが重要です。これにより、クロスサイトスクリプティングなどの悪意のある攻撃を防ぐことができます。 X-XSS-保護.
Nginx の設定 #
Nginxはヘッダーを変更および追加するための2つのディレクティブを提供します。これらには以下が含まれます。 ヘッダーを追加 および ヘッダーをもっと見るこれらのロケーション ヘッダーをロケーション ブロック内で使用します。
使用例の設定 ヘッダーを追加 nginx で。
location / { ... add_header サーバー “serverName”; ... }
ヘッダーをもっと見る Nginx にはネイティブにインストールされていないため、ユーザーは通常、nginx をコンパイルする前にこのプラグインを手動でインストールします。
使用例の設定 ヘッダーをもっと見る.
location /{ ... more_set_headers サーバー “serverName”; ... }
RELIANOID 構成 #
- まず、に行く LSLB>>農場 を選択します HTTP ルールを設定したいファーム。
- Global 設定するには、 詳細設定 タブには何も表示されないことに注意してください。
- 以内 詳細設定、 を選択 有効にする 内のオプション ロケーションヘッダーを書き換える ルール。
- をクリックして設定を更新します Apply
- ヘッダーセクションまでスクロールし、 ルールを作成
- 以内 タイプ ドロップダウンオプションから、アプリケーションに適したものを選択してください。この例では、 レスポンス: ヘッダーを追加.
- 値を変更したいヘッダーを入力します。この例では、 サーバー ヘッダ。
- をクリックして設定を保存します。 Apply
- 再起動 設定を有効にするには、ファームを更新する必要があります。
その他のリソース #
Let's Encrypt プログラムを使用して SSL 証明書を自動生成します。
データリンク/アップリンク負荷分散 RELIANOID ADC。
DNS負荷分散 RELIANOID ADC。
DDoS 攻撃からの保護。
Relianoid ADC におけるアプリケーション、ヘルス、ネットワークの監視。
Web アプリケーション ファイアウォールの構成。
ロード バランサーの SSL 証明書を構成します。



