HAProxy をリバース プロキシとして構成する方法

Haproxy Woribasu Purokishitoshite Gou Chengsuru Fang Fa



Web サーバーを使用している場合、クライアントのリクエストとサーバーの応答を転送する方法があれば、トラフィックの分散が容易になり、セキュリティが強化されます。 HAProxy などのリバース プロキシは、構成されている場合、Web アプリケーションとクライアント デバイスの間の仲介者として機能します。このようにして、サーバーの応答を受信して​​クライアントに送信しながら、クライアントの要求を受信して​​適切な Web サーバーに転送します。リバース プロキシとして機能するようにサーバー側で HAProxy を構成するのは簡単なプロセスです。この投稿では、実行する必要がある手順について詳しく説明します。

リバース プロキシを使用する理由

HAProxy をリバース プロキシとして構成する手順を説明する前に、リバース プロキシが有利に機能する理由を簡単に説明しましょう。 HAProxy をリバース プロキシとして使用すると、次のような利点があります。

  1. ロードバランシング – Web サーバーには、ある時点で多くのクライアント リクエストが発生し、適切に処理されないと過負荷になり、予期しないダウンタイムが発生する可能性があります。ただし、リバース プロキシを構成すると、トラフィックがバックエンド サーバー全体に確実に分散され、サーバーがリクエストで過負荷になることがなくなります。
  2. ファイアウォールとセキュリティ – リバース プロキシは、クライアント デバイスを Web サーバーに接続します。そうすることで、バックエンド サーバーがインターネットに直接公開されるリスクが軽減されます。そうすることで、サーバーに損害を与える前に、悪意のあるトラフィックを簡単にフィルタリングしてブロックできます。
  3. より良いキャッシング – リバース プロキシを使用すると、静的コンテンツをキャッシュすることで読み込み時間が短縮されるため、全体的なパフォーマンスが向上することがわかります。さらに、より良いユーザーエクスペリエンスを実現します。
  4. SSL/TLS 終端 – リバース プロキシを使用すると、SSL/TLS 接続の暗号化と復号化がシームレスになり、バックエンド サーバーがこのタスクを負担する必要がなくなり、負荷が軽減されます。

HAProxy をリバース プロキシとして構成する方法

HAProxy などのリバース プロキシが不可欠な理由を説明したので、従うべき構成手順を示しましょう。







ステップ 1: HAProxy をインストールする



おそらく、システムに HAProxy がすでにインストールされていると思われます。その場合は、この手順をスキップしてください。ただし、これを初めて行う場合は、次のコマンドを実行して HAProxy をインストールしてください。



$ sudo apt install haproxy

私たちのケースにはすでにインストールされています。





ステップ 2: HAProxy 構成ファイルを編集する



HAProxy には、リバース プロキシとして構成するためにアクセスして編集する必要がある構成ファイルがあります。まず、テキスト エディターを使用して構成ファイルを開きます。

$ sudo nano /etc/haproxy/haproxy.cfg

開いたら、デフォルト セクションとグローバル セクションの基本構成が含まれていることに注意してください。次に、さらに 2 つのセクション (フロントエンドとバックエンド) を作成する必要があります。フロントエンドはクライアント要求を受信するインターフェイスを定義し、バックエンドはトラフィックを処理するサーバーを指定します。

この例では、ポート 80 と 81 からのクライアント要求を受け入れるようにフロントエンドを構成します。次に、ポート 80 からの接続が特定のサーバーにルーティングされ、ポート 81 からの接続が別のサーバーに送信されるようにトラフィックを分散するルールを作成します。サーバ。フロントエンド セクションは次のとおりです。

backend2 と linux_backend という 2 つのバックエンド サーバーを作成したため、両方のサーバーのバックエンド セクションを作成する必要があります。 「server1」と「server2」にトラフィックを分散する IP をそれぞれ指定します。

設定ファイルを編集したら、保存してファイルを終了します。 HAProxy を構成するには、ニーズに応じてさまざまな方法があることに注意してください。この例では、指定された IP アドレスを使用して Web サーバーを作成し、トラフィックをルーティングします。 Web サーバーの IP とリッスンするポートに一致するように IP を変更します。

ステップ 3: 有効性を確認する

HAProxy には、構成ファイルが有効かどうかを確認できるコマンドがあります。次のコマンドを実行して、どのような出力が得られるかを確認します。

$ sudo haproxy -c -f /etc/haproxy/haproxy.cfg

同様の出力が得られた場合は、構成ファイルが有効であることが確認されます。そうしないと、エラーが発生します。

ステップ 4: リバース プロキシをテストする

「curl」などのコマンドを使用すると、Web サーバーにトラフィックを送信し、その応答を確認できます。この例では、Python3 を使用して Web サーバーを作成します。

「curl」コマンドを実行すると、Web サーバーが指定されたポートをリッスンしており、HAProxy が構成ファイルに基づいて指定されたサーバーにトラフィックを分散していることが確認されます。

ブラウザから Web サーバーにアクセスし、リバース プロキシが動作していることを確認することもできます。

クライアント デバイスが使用するポートに応じて使用できる 2 つの Web サーバーがあるため、別の Web サーバーを別のポートにバインドして、何が起こるかを見てみましょう。

次の出力は、クライアント要求がポート 81 経由で送信されたことを検出した後、HAProxy が 2 番目のバックエンド サーバーにトラフィックを送信したことを示しており、トラフィック分散が期待どおりに機能していることが確認できます。

これが、HAProxy をリバース プロキシとして構成する方法です。

結論

HAProxy は、Web サーバーのリバース プロキシとして最適な選択肢です。設定は簡単です。クライアント要求をリッスンするポートと負荷分散に使用するルールのみを指定します。次に、使用するバックエンド サーバーを追加すると、リバース プロキシが稼働するようになります。この投稿では、HAProxy に慣れるための手順と例を示しました。