もっと詳しく

この投稿では、Ubuntu 22.04(Jammy Jellyfish)にHAProxyをインストールする方法を段階的に説明します。 後で、2つのWebサーバー間で着信要求を分散することにより、ロードバランサーとして機能するように構成します。

HAProxyとは何ですか?

HaProxyは、High Availability Proxyの略で、無料のオープンソースHTTPロードバランサーおよびリバースプロキシソリューションであり、Webアプリケーションに高可用性を提供し、可能な限り最大の稼働時間を保証するために広く使用されています。

これは、複数のエンドポイントにトラフィックを分散することでWebアプリのパフォーマンスを向上させる高性能アプリケーションです。 このようにして、ワークロードが複数のノードに均等に分散されるため、Webサーバーが着信HTTPリクエストで過負荷にならないようにします。

Enterprise Editionは無料ですが、WAF(Webアプリケーションファイアウォール)、アプリケーションアクセラレーション、高度なDDoS保護、高度なヘルスチェックなどの追加機能を提供します。

ラボのセットアップ

HAProxyの動作を示すには、少なくとも3つのLinuxシステムが必要です。 1つはHAProxyロードバランサーとして機能し、残りはWebサーバーとして機能します。

ステップ1)HAProxyロードバランサーをインストールする

最初のステップは、UbuntuにHAProxyをインストールすることです。 UbuntuリポジトリはデフォルトでHAProxyを提供しますが、最新のものではありません。

デフォルトのリポジトリから利用可能なhaproxyパッケージのバージョンを表示するには、

$ sudo apt update
$ sudo apt show haproxy

default-haproxy-version-ubuntu-22-04

ただし、最新の長期サポートリリースはHAProxyが2.6であるため、HAProxy 2.6をインストールするには、最初にPPAリポジトリを有効にして、次のコマンドを実行します。

$ sudo add-apt-repository ppa:vbernat/haproxy-2.6 -y

次のコマンドを実行して、haproxy2.6をインストールします。

$ sudo apt update
$ sudo apt install -y haproxy=2.6.*

インストールしたら、図のようにインストールされているHAProxyのバージョンを確認します。

$ haproxy -v

Haproxy-バージョン-ubuntu-22-04

インストール時に、HAProxyサービスはデフォルトで開始され、TCPポート80をリッスンします。HAProxyが実行されていることを確認するには、コマンドを実行します。

$ sudo systemctl status haproxy

Haproxy-ステータス-Ubuntu-Linux

図のように、システムの再起動時にサービスを自動開始できるようにすることをお勧めします。

$ sudo systemctl enable haproxy

ステップ2)HAProxyを設定する

次のステップは、2つのWebサーバー間でトラフィックを均等に分散するようにHAProxyを構成することです。 haproxyの設定ファイルは /etc/haproxy/haproxy.cfg

ファイルに変更を加える前に、まずバックアップコピーを作成します。

$ sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bk

次に、お好みのテキストエディタを使用してファイルを開きます。 ここでは、Nanoを使用しています。

$ sudo nano /etc/haproxy/haproxy.cfg

Haproxy設定ファイルは、次のセクションで構成されています。

  • グローバル:これは、一番上に表示される最初のセクションです。 これには、パフォーマンスの調整とセキュリティを処理するシステム全体の設定が含まれています。
  • デフォルト: 名前が示すように、このセクションには、追加のカスタマイズなしでうまく機能するはずの設定が含まれています。 これらの設定には、タイムアウトとエラー報告の構成が含まれます。
  • フロントエンドとバックエンド: これらは、フロントエンドとバックエンドの設定を定義する設定です。 フロントエンドの場合、HAProxyサーバーをフロントエンドとして定義します。フロントエンドは、Webサーバーであるバックエンドサーバーにリクエストを配信します。 また、トラフィックを分散するためにラウンドロビン負荷分散基準を使用するようにHAProxyを設定します。
  • 聞く: これは、HAProxy統計の監視を有効にできるオプションの設定です。

次に、フロントエンドとバックエンドの設定を定義します。

frontend linuxtechi
   bind 10.128.0.25:80
   stats uri /haproxy?stats
   default_backend web-servers

backend web-servers
    balance roundrobin
    server web1 10.128.0.27:80
    server web2 10.128.0.26:80

ここでは、HAProxyサーバーとWebサーバーノードの両方をポート80にリストされるように構成しました。HAProxyとWebサーバーのIPアドレスをセットアップに置き換えてください。

ブラウザからHAProxy統計を表示できるようにするには、次を追加します 「聞く」セクション

listen stats
   bind *:8080
   stats enable
   stats uri /
   stats refresh 5s
   stats realm Haproxy Statistics
   stats auth linuxtechi:[email protected]     #Login User and Password for the monitoring

stats authディレクティブは、ブラウザで統計を表示するためのログインユーザーのユーザー名とパスワードを指定します。

HAproxy-Config-File-Ubuntu

次に、すべての変更を保存して、構成ファイルを終了します。 新しい設定を再ロードするには、haproxyサービスを再起動します。

$ sudo systemctl restart haproxy

次に、 / etc / hosts ファイル。

haproxyメインサーバーとWebサーバーのホスト名とIPアドレスを定義します。

10.128.0.25 haproxy
10.128.0.27 web1
10.128.0.27 web2

変更を保存して終了します。

手順3)Webサーバーを構成する

このステップでは、Webサーバーである残りのLinuxシステムを構成します。

したがって、各Webサーバーにログインして、ApacheWebサーバーパッケージをインストールします。

$ sudo apt update
$ sudo apt install -y apache2

次に、Apacheが各サーバーで実行されていることを確認します。

$ sudo systemctl status apache2

次に、ApacheWebサーバーが両方のサーバーで起動時に起動できるようにします。

$ sudo systemctl enable apache2

次に、各Webサーバーのindex.htmlファイルを変更します。

Webサーバー1の場合

rootユーザーに切り替えます

$ sudo su

次に、次のコマンドを実行します。

# echo "<H1>Hello! This is webserver1: 10.128.0.27 </H1>" > /var/www/html/index.html

Webサーバー2の場合

同様に、rootユーザーに切り替えます

$ sudo su

そして、示されているようにindex.htmlファイルを作成します。

# echo "<H1>Hello! This is webserver2: 10.128.0.26 </H1>" > /var/www/html/index.html

次に、/ etc/hostsファイルを設定します。

$ sudo nano /etc/hosts

各ノードにHAProxyエントリを追加します。

10.128.0.25 haproxy

変更を保存して、構成ファイルを終了します。

各WebサーバーノードからHAProxyサーバーにpingできることを確認してください。

Haproxy-Connectivity-from-web1

Haproxy-Connectivity-from-web2

注:Webサーバーでポート80が有効になっている場合は、OSファイアウォールでポート80が許可されていることを確認してください。

ステップ4)HAProxyロードバランシングをテストする

この時点までに、HAProxyと両方のバックエンドWebサーバーを正常に構成できました。 構成が期待どおりに機能しているかどうかをテストするには、HAProxyサーバーのIPアドレスを参照します

http://10.128.0.25

初めて閲覧すると、最初のWebサーバーのWebページが表示されます。

Access-WebPage1-Over-Haproxy

更新すると、2番目のWebサーバーのWebページが表示されます。

Access-WebPage2-Over-Haproxy

これは、HAProxyサーバーがラウンドロビンアルゴリズムで2つのWebサーバーに着信Webトラフィックを分散することにより、負荷分散ジョブを実行していることを示しています。

さらに、curlコマンドで次のdo-whileループを使用できます。

$ while true; do curl 10.128.0.25; sleep1; done

While-Loop-Access-Webpage-over-Haproxy

監視統計を表示するには、次のURLを参照してください。

http://10.128.0.25:8080/stats

認証が必要になるため、手順2で指定した詳細を入力してください。

HAproxy-GUI-ログイン-ページ

次のページに、HAProxyサーバーのパフォーマンスに関する統計が表示されます。

Haproxy-統計-Ubuntu-Linux

結論

あります! Ubuntu 22.04にHAProxyを正常にインストールし、RoundRobbin負荷分散基準を使用して2つのWebサーバー間でリクエストを処理するように構成しました。

また読むUbuntu22.04LTSで静的IPアドレスを構成する方法

The post Ubuntu22.04にHAProxyをインストールして設定する方法 appeared first on Gamingsym Japan.