ホームページ >システムチュートリアル >Linux >UbuntuのHaproxy:回復力のあるインフラストラクチャのロードバランシングとフェールオーバー

UbuntuのHaproxy:回復力のあるインフラストラクチャのロードバランシングとフェールオーバー

Joseph Gordon-Levitt
Joseph Gordon-Levittオリジナル
2025-03-05 09:06:11603ブラウズ

HAProxy on Ubuntu: Load Balancing and Failover for Resilient Infrastructure

はじめに

今日のペースの速いデジタル環境では、アプリケーションの可用性とパフォーマンスが重要であることを確認します。最新のインフラストラクチャには、サーバーの障害がある場合でもサービスの可用性を維持し、トラフィックを効率的に割り当てるために強力なソリューションが必要です。 haproxy高性能負荷分散とフェールオーバーの実際の標準として、それは生まれました。

この記事では、最も人気のあるLinux分布の1つであるHaproxyとUbuntuの相乗効果について説明します。インストールから高度な構成まで、Haproxyがロードバランスとフェールオーバー機能でインフラストラクチャをどのように変換できるかについて飛び込みます。

荷重バランスの詳細な説明

ロードバランシングは、受信ネットワークトラフィックを複数のサーバーに割り当てるプロセスです。負荷のバランスをとることにより、単一のサーバーが圧倒されず、パフォーマンス、信頼性、フォールトトレランスが向上することが保証されます。

主な利点:

  • スケーラビリティ:サーバーを追加することでトラフィックの増加をトレーニングします。
  • 信頼性:トラフィックを通常のサーバーにルーティングすることで、サーバーの障害の影響を容易にします。
  • パフォーマンス:ワークロードを均等に分配することにより、遅延を減らします。

負荷分散タイプ:

  • レイヤー4(輸送レイヤー):IPおよびポート情報に従ってトラフィックを配布します。
  • レイヤー7(アプリケーションレイヤー):アプリケーションレベルのデータ(HTTPヘッダーなど)に基づいてルーティング決定を行います。

フェイルオーバーコンセプト

フェイルオーバーは、主要なリソースの障害が発生した場合にトラフィックをバックアップリソースに自動的にリダイレクトすることにより、継続性を保証します。これは、

高可用性(ha)セットアップの基礎です。

Haproxyを使用すると、フェイルオーバーはシームレスです:

    バックエンドサーバーが使用できない場合、Haproxyは健康チェックを通じてそれを検出します。
  • トラフィックは他の利用可能なサーバーに再ルーティングされ、途切れないサービスが維持されます。

ubuntu でhaproxyを設定します

ubuntuにHaproxyをインストールして構成することから始めましょう。

前提条件:

    ubuntuサーバー(20.04以上を使用することをお勧めします)。
  • 負荷分散をテストするための複数のバックエンドサーバー。
  • 基本的なLinuxコマンドラインスキル。
ステップ1:Haproxy システムの更新:
    Haproxyのインストール:
  1. sudo apt update && sudo apt upgrade -y
  2. インストールの確認:
  3. sudo apt install haproxy -y
  4. haproxy -vステップ2:haproxyを構成
  5. 編集
構成ファイル:

<code>global
    log /dev/log local0
    log /dev/log local1 notice
    maxconn 2048
    daemon
defaults
    log global
    option httplog
    option dontlognull
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms
frontend http_front
    bind *:80
    default_backend http_back
backend http_back
    balance roundrobin
    server server1 192.168.1.101:80 check
    server server2 192.168.1.102:80 check</code>
  1. 変更を適用するにはhaproxyを再起動します:sudo systemctl restart haproxy
  2. サーバーのIPアドレスにアクセスして、
  3. テストします。 Haproxyは、バックエンド間でリクエストを割り当てます。

Advanced configuration

ロードバランシングアルゴリズム:

  • 世論調査:順次リクエストを順次割り当てます。
  • 接続の数:アクティブな接続が最も少ないサーバーにルーティングされます。
  • 出典:クライアントが常に同じサーバーにルーティングされていることを確認してください。

それに応じて、バックエンドのbalanceディレクティブを更新します。

ヘルスチェック:ヘルスチェックにより、トラフィックが通常のサーバーにのみ送信されることが保証されます。 check命令は定期的な健康チェックを実行します。

ssl終了:トラフィックを保護するには、SSL終了を処理するようにHaproxyを構成します。

  1. SSL証明書を取得します。
  2. https:frontend https_front bind *:443 ssl crt /etc/haproxy/certs/example.pem default_backend http_back
  3. を使用するように構成を更新します

アクセスコントロールリスト(ACL):ACLを使用したフィルタートラフィック:

<code>frontend http_front
    acl is_api path_beg /api
    use_backend api_back if is_api</code>

高可用性を有効にします

KeepAlivedを備えた

vrrp:フェールオーバーを有効にするには、keepAlivedをhaproxyと統合します。

  1. KeepAlivedのインストール:sudo apt install keepalived -y
  2. 構成KeepAlived(/etc/keepalived/keepalived.conf
<code>vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass mypassword
    }
    virtual_ipaddress {
        192.168.1.100
    }
}</code>
    再起動KeepAlived:
  1. sudo systemctl restart keepalived
KeepAlivedは、プライマリサーバーが失敗したときにセカンダリサーバーがシームレスに引き継がれることを保証します。

監視とパフォーマンスチューニング

haproxy統計パネル:リアルタイムの監視のためにパネルを有効にする:

<code>listen stats
    bind *:8404
    stats enable
    stats uri /stats
    stats auth admin:password</code>

にアクセスしてください。 http://<server-ip>:8404/stats</server-ip>

最適化スキル:

  • およびmaxconn設定を調整します。 timeout
  • HTTPトラフィックにGZIP圧縮を使用します。
  • ログの例外を監視します。

ユーザーケースと実際のシナリオ

  • マイクロサービス:APIリクエストを複数のサービスに割り当てます。
  • Webアプリケーション:バックエンドサーバーを拡張してトラフィックスパイクを処理します。
  • データベースロードバランシング:読み取りおよび書き込み操作を最適化します。
  • FAQSのトラブルシューティング

接続の問題:

ファイアウォールルールを確認します。

    サーバーの健康チェックを確認します。
  • パフォーマンスボトルネック:

ファイル記述子のulimitを追加します。

    バックエンドサーバーの構成を最適化します。
  • メンテナンス:

  • 常にバックアップ構成。
  • 交通量の少ない時期に更新を適用します。

結論

HaproxyとUbuntuを組み合わせることにより、トラフィックを管理し、稼働時間を確保するための強力な組み合わせが得られます。上記の手順を使用すると、高い負荷とサーバーの障害を処理できる回復力のあるインフラストラクチャを構築できます。

今すぐHaproxyを試してみて、Ubuntuシステム機能の最大限の可能性を解き放ちます。

以上がUbuntuのHaproxy:回復力のあるインフラストラクチャのロードバランシングとフェールオーバーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。