WebSocket 接続用に HAProxy を構成する方法

Websocket Jie Xu Yongni Haproxy Wo Gou Chengsuru Fang Fa



WebSocket アプリケーションは、クライアントとサーバー間でリアルタイムの双方向通信を行います。 WebSocket 接続を使用する場合でも、ダウンタイムや可用性の低下につながるサーバーの過負荷を避けるために、トラフィックを分散する方法が必要です。

HAProxy は、リバース プロキシとしても機能する、無料で信頼性の高いロード バランサーの一例です。 WebSocket 接続用に HAProxy を構成すると、HAProxy を使用してサーバーの負荷を最小限に抑えながら、特にリアルタイム データ転送において WebSocket の機能をより効果的に活用できます。この投稿では、WebSocket 接続用に HAProxy を構成するために必要なすべての手順を示します。

WebSocket 接続用に HAProxy を構成する方法に関するステップバイステップ ガイド

WebSocket 接続を使用すると、サーバーとクライアントの通信は長期間持続します。これは、サーバーまたはクライアントが閉じることを決定するまで存続します。そのため、ロード バランサーを使用する方法があれば、サーバーが過負荷になった場合にトラフィックを別のサーバーに確実に分散できます。これにより、クライアントとサーバーは、低遅延で中断のない長時間の接続を楽しむことができます。







1.HAProxyをインストールする

WebSocket 接続用に HAProxy を構成する最初のステップは、HAProxy がインストールされていることを確認することです。すでにインストールされている場合は、この手順をスキップしてください。それ以外の場合は、次のコマンドを実行してインストールします。



$ 須藤 apt-get インストール ハプロキシ



2. HAProxy 構成を編集する

WebSocket 接続用に HAProxy を構成するには、WebSocket 接続をサポートするように HAProxy 構成を編集する必要があります。 「デフォルト」セクションを変更し、「フロントエンド」セクションと「バックエンド」セクションを作成する必要があります。





次のようにテキスト エディタを使用して HAProxy 構成を開きます。

$ 須藤 ナノ / / ハプロキシ / haproxy.cfg

「デフォルト」セクションで、次の図に示すように変更します。まず、HTTP 接続を使用していることを指定し、ログ ファイルの送信先を定義します。次に、さまざまなアクティビティのタイムアウトを設定します。たとえば、接続タイムアウトは、サーバーへの接続試行にかかる最大時間です。最大時間に達すると、接続は失敗したと判断され、再試行できます。



このケースでは、接続タイムアウトを 5000 ミリ秒に設定します。ケースに最適な方法でタイムアウトを調整できます。アプリケーションに基づいてそれらを調整し、WebSocket セッションの継続時間と、予想される存続期間を覚えておいてください。

次に、WebSocket 接続に使用するポートと参照するバックエンド サーバーをバインドする「フロントエンド」セクションを作成する必要があります。この場合、ポート 80 を指定し、HAProxy を監視するための「統計」ページにアクセスするための URL を指定します。最後に、負荷分散で参照するバックエンド セクションを定義します。

「バックエンド」セクションでは、ラウンドロビンを使用して負荷を分散します。 「option forward for」は、接続リクエストの送信時にクライアントの IP アドレスを含む「X-Forward-For」ヘッダーを含めるよう HAProxy に指定します。こうすることで、バックエンド サーバーは正しいクライアント IP を取得します。

「オプション http-server-close」は、アイドル状態の接続がサーバー リソースを占有しないようにすることで、リソースを制限します。 WebSocket 接続は長期間存続しますが、不必要なリソースの浪費を避けるために、アイドル状態の長期間存続する接続を確認し、それらの接続を閉じる必要があります。

最後に、トラフィックの分散に使用するバックエンド サーバーを追加します。サーバーに正しい IP アドレスを指定していることを確認し、次の図の IP アドレスを置き換えてください。

これで、HAProxy が WebSocket 接続用に構成されました。変更を保存してファイルを閉じます。

3. 妥当性のテスト

HAProxy を再起動する前に、簡単なコマンドを実行して、ファイルが有効かどうか、エラーがないかどうかを確認できます。そのためには、次のコマンドを実行します。

$ 須藤 ハプロキシ -c -f / / ハプロキシ / haproxy.cfg

4. WebSocket 接続を再起動してテストする

ファイルが有効になったら、HAProxy サービスを再起動します。

それでおしまい。 WebSocket 接続用に HAProxy を構成しました。接続をテストして、すべての WebSocket トラフィックが正しく転送されていることを確認できます。

結論

WebSocket 接続用の HAProxy の構成は、特に Web 管理者に求められているソリューションです。この投稿では、プロセスを詳細に説明し、お客様が無理なく従うことができ、実際に同じことを実装できるようにするための手順と例を示しました。各ステップを実行して、概念とそれを実装するプロセスを確実に理解してください。