GNU/Linux >> Linux の 問題 >  >> Debian

Ubuntu 20.04 LTS に HAproxy をインストールして構成する方法

HAproxy は、TCP および HTTP ベースのプログラムに高可用性と負荷分散を提供する軽量のオープン ソース パッケージです。これにより、Web サーバーとアプリケーション サーバーの間で負荷が分散されます。 HAproxy は、ほぼすべての Linux ディストリビューションで利用できます。これは、効率性、信頼性、およびメモリと CPU のフットプリントが小さいことで人気のある、広く使用されているロード バランサです。この投稿では、Ubuntu システムに HAproxy をインストールして構成する方法について説明します。

3台のマシンをセットアップしました。 HAproxy を 1 つのサーバーにインストールし、Apache Web サーバーを 2 つのサーバーにインストールします。次に、HAproxy サーバーがロード バランサーとして機能し、負荷を Apache Web サーバー全体に分散します。

注: この投稿に記載されている手順とコマンドは、Ubuntu 20.04 LTS (Focal Fossa) でテストされています。 同じ手順が Debian および Mint ディストリビューションにも適用されます。

ネットワークの詳細

3 つの Ubuntu サーバーを使用します。すべて同じネットワーク上にあります。サーバーの詳細は次のとおりです:

ホスト名:HAproxy、IP アドレス:192.168.72.157 (フロントエンド サーバー)
ホスト名:Webserver1、IP アドレス:192.168.72.158 (バックエンド サーバー)
ホスト名:Webserver2、IP アドレス:192.168.72.159 (バックエンド サーバー)

注: すべてのサーバーで sudo 権限が必要です。

1 台のコンピューターをロード バランサーとして構成し、他の 2 台を Web サーバーとして構成します。 HAproxy サーバーはフロントエンド サーバーとなり、ユーザーの要求を受け取って 2 つの Web サーバーに転送します。ウェブ サーバーは、これらの転送されたリクエストを受信するバックエンド サーバーです。

設定は次のようになります:

ウェブ サーバー バックエンド サーバーのセットアップ

このセクションでは、2 つの Web サーバー (Webserver1) をセットアップします。 および Webserver2 ) をバックエンド サーバーとして使用します。

webserver1(192.168.72.158)上

Web サーバーで次の手順を実行します。ホスト名と IP アドレスを、対応する Web サーバーの IP アドレスとホスト名に置き換えてください。

1.ホスト ファイルの構成

Webserver1、 /etc/hosts を編集します ファイル:

$ sudo ナノ /etc/hosts

次に、 のホスト名エントリを追加します。 HAproxy を追加 サーバーは次のとおりです:

HAproxyのホスト名HAproxyのIPアドレス

このシナリオでは、次のようになります:

HAプロキシ 192.168.72.157

2. Apache Web サーバーをセットアップする

ターミナルで次のコマンドを使用して、Apache Web サーバーをインストールします。 Linux に Apache Web サーバーをインストールする方法に関する投稿もご覧ください。

$ sudo 適切な Apache2 のインストール

次に、ターミナルで次のコマンドを使用して、Apache サービスを有効にして開始します。

$ sudo systemctl activate apache2
$ sudo systemctl start apache2

Webserver1 のインデックス ファイルを作成する ターミナルで次のコマンドを使用します:

$エコー」

こんにちは!これは webserver1 です:192.168.72.158

」 |須藤ティー /wo/www/html/index.html

システムでファイアウォールを実行している場合は、Apache トラフィックの通過を許可する必要があります:

$ sudo ufw allow 80/tcp

次に、ファイアウォール構成をリロードします:

$ufwをリロード

https:// と入力して、Web ブラウザでサイトにアクセスしてみてください。 の後に、Web サーバーの IP アドレスまたはホスト名が続きます。

https:// ホスト名または IP アドレス

または、curl コマンドを使用して Web ページをテストすることもできます。

$lock <ホスト名または IP アドレス>

webserver-2 192.168.72.159) で

2 番目の Web サーバーで次の手順を実行します。ホスト名と IP アドレスを、対応する Web サーバーの IP アドレスとホスト名に置き換えてください。

1.ホスト ファイルの構成

Webserver2 で 、/etc/hosts を編集します ファイル:

$ sudo ナノ /etc/hosts

次に、 のホスト名エントリを追加します。 HAproxy を追加 サーバーは次のとおりです:

HAプロキシ 192.168.72.157

2. Apache Web サーバーをインストール

ターミナルで次のコマンドを使用して、Apache Web サーバーをインストールします。

$ sudo 適切な Apache2 のインストール

次に、ターミナルで次のコマンドを使用して、Apache サービスを有効にして開始します。

$ sudo systemctl activate apache2
$ sudo systemctl start apache2

ターミナルで次のコマンドを使用して、Webserver2 のインデックス ファイルを作成します。

$エコー」

こんにちは!これは webserver2 です:192.168.72.159

」 |須藤ティー /wo/www/html/index.html

ファイアウォールで Apache を許可:

$ sudo ufw allow 80/tcp

次に、ファイアウォール構成をリロードします:

$ufwをリロード

https:// と入力して、Web ブラウザでサイトにアクセスしてみてください。 その後に IP アドレスまたはホスト名が続きます。

https:// ホスト名または IP アドレス

または、curl コマンドを使用して Web ページをテストすることもできます。

$lock <ホスト名または IP アドレス>

これで、Apache Web サーバーの準備が整いました。

HAproxy Load Balancer フロントエンド サーバーのセットアップ

このセクションでは、ウェブ サーバー用に HAproxy ロード バランサをセットアップします。 .この HAproxy サーバーはフロントエンド サーバーとして機能し、クライアントからの着信要求を受け入れます。

HAproxy について サーバー (192.168.72.157 )、以下の手順に従ってロードバランサーを設定してください。

1.ホスト ファイルの構成

/etc/hosts を編集します ターミナルで次のコマンドを使用してファイルを作成します:

$ sudo ナノ /etc/hosts

両方の Apache に次のホスト名エントリを追加します ウェブサーバーと独自のホスト名:

192.168.72.157 HAproxy
192.168.72.158 Web サーバー 1
192.168.72.159 Web サーバー 2

/etc/hosts を保存して閉じます ファイル。

HAproxy ロード バランサーをインストールする

このステップでは、HAproxy を Ubuntu サーバーの 1 つ (192.168.72.157) にインストールします。これを行うには、ターミナルで次のコマンドを使用して apt を更新します。

$ sudo apt-get update

次に、次のコマンドでパッケージを更新します:

$ sudo apt-get アップグレード

ターミナルで次のコマンドを使用して HAproxy をインストールします。

$ sudo sudo 適切なインストール 幸せ

HAproxy サーバーのインストールが完了したら、ターミナルで次のコマンドを使用して確認できます。

$幸せ-v

システムにインストールされている HAproxy のバージョンが表示され、HAproxy が正常にインストールされたことを確認できます。

HAproxy をロード バランサーとして構成する

次のセクションでは、HAproxy をロード バランサーとして構成します。これを行うには、ファイル /etc/haproxy/haproxy.cfg を編集します。 ファイル:

$ sudo nano >etc/happy/haproxy.cfg

haproxy.cfg ファイルに次の行を追加し、IP アドレスを独自の IP アドレスに置き換えます。

?フロントエンド Web フロントエンド 上記の設定行で、HAproxy はポート 80 で受信リクエストをリッスンするように指示されています 192.168.72.157 から で実行されているバックエンド サーバーに転送します。 バックエンド が構成されている ウェブ バックエンド .構成中に、IP アドレスを Web サーバーの対応する IP アドレスに置き換えます。

HAproxy モニタリングの構成

HAproxy モニタリングを使用すると、サーバー ステータス、転送データ、アップタイム、セッション レートなど、多くの情報を表示できます。HAproxy モニタリングを設定するには、/etc/haproxy/haproxy.cfg にある設定ファイルに次の行を追加します。 :

統計を聞く
バインド 192.168.72.157:8080
モード http
オプション forwardfor
オプション httpclose
統計を有効にする
統計 凡例を表示する
統計更新5s
stats /stats
stats realm haproxy stats
stats auth kbuzdar:kbuzdar #login user and password for monitoring
stats admin if TRUE
default_backend Web バックエンド

上記の設定により、HAproxy の「Statistics」が有効になります 「統計」ページ ポリシーを作成し、http で保護します 統計認証から取得したユーザー名とパスワードによる基本認証 ポリシー。

構成が完了したら、haproxy.cfg ファイルを保存して閉じます。

ターミナルで次のコマンドを使用して構成ファイルを確認します:

$ happy -C -F /etc/happy/haproxy.cfg

次の出力は、構成が正しいことを示しています。

構成を適用するには、HAproxy サービスを再起動します。

$ sudo systemctl restart haproxy.service

HAproxy サービスを停止してから開始します。

HAproxy サービスのステータスを確認するためのコマンドは次のとおりです。

$ sudo systemctl-status haproxy.service

アクティブ (進行中) 次の出力の status は、HAproxy サーバーが有効であり、適切に実行されていることを示しています。

HAproxy サーバーを管理するその他のコマンドは次のとおりです。

HAproxy サーバーを起動するためのコマンドは次のとおりです。

$ sudo systemctl start haproxy.service

HAproxy サーバーを停止するコマンドは次のとおりです。

$ sudo systemctl stop haproxy.service

HAproxy サーバーを一時的に無効にする場合のコマンドは次のとおりです。

$ sudo systemctl disable haproxy.service

HAproxy サーバーを再度有効にするコマンドは次のとおりです。

$ sudo systemctl enable haproxy.service

HAproxy のテスト

HAproxy セットアップをテストする前に、Web サーバーに接続できることを確認してください。 HAproxy サーバーから、IP アドレスまたはホスト名を使用して両方の Web サーバーに ping を送信します。

$リングのホスト名またはIPアドレス

次の出力は、HAproxy サーバーが両方の Web サーバーに到達できることを示しています。

Web ブラウザで HA プロキシをテストする

HAproxy サーバーで任意の Web ブラウザーを開き、「https://」と入力します。 HAproxy サーバーの IP アドレスが続きます。この場合は 192.168.72.157 です。

https://192.168.72.157

HAproxy サーバーは、ラウンドロビン手順で両方の Web サーバーに要求を交互に送信します。ウェブページを数回リロードすることで、これをテストできます。

これは、https://192.168.72.157 を最初に見たときに受け取った応答です:

これは、Web ページをリロードしたときに得た応答です:

HAproxy サーバーの IP アドレスの代わりにホスト名を使用することもできます。

curl を使用して HA プロキシをテストする

Linux で curl コマンドを使用して、HAproxy セットアップをテストすることもできます。ターミナルを開いて curl と入力します HAproxy サーバーの IP アドレスまたはホスト名が続きます。

$ カール 192.168.72.157

または

$ カール HAproxy

curl コマンドを数回実行すると、両方の Web サーバーで交互に応答が返されることがわかります。

コマンドを複数回実行する代わりに、次の 1 行のスクリプトを実行して HAproxy サーバーをテストすることもできます:

$ true; curl 192.168.72.157; を実行します。睡眠 1;やりました

HAproxy モニタリングのテスト

HAproxy モニタリング ページにアクセスするには、「https://」と入力します HAproxy サーバーの IP アドレス/ホスト名とポート 8080/stats が続きます:

https://192.168.72.157:8080/統計

または

https://HA-Proxy:8080/Statistics

以下の認証ボックスが表示されます。 ユーザー名を入力してください とパスワード OK を押します。 .

これは HAproxy サーバーの統計レポートです。

これで、Linux システムに HAproxy Load Balancer をインストールして構成できました。 Apache ウェブサーバーのロードバランサーとしての HAproxy の基本的なセットアップと構成について説明しました。また、HAproxy サーバーを管理するためのコマンドもいくつか調べました。最後に、ブラウザと curl コマンドを使用して負荷分散をテストしました。詳細については、HAproxy の公式ドキュメントを参照してください


Debian

DebianLinuxを簡単にインストールする方法

  1. Debian11にAnsibleをインストールして使用する方法

  2. Ubuntu でスナップ パッケージを削除する方法

  3. Ubuntu に最新の Java OpenJDK / JRE 11/13/14/15 をインストールします。

Debian9にMongoDBをインストールする方法

  1. VMware Workstation 14ProをDebian9にインストールする方法(ストレッチ)

  2. Raspbian GNU/LinuxをStretchからRaspbianBuster10にアップグレード

  3. Debian11/10にZabbixモニタリングツールをインストールする方法

Debianchrootインストールを実行する方法

  1. Debian 11 BullseyeにSnap&Snap-Store(Snapcraft)をインストールする方法

  2. Debian11でApacheのリバースプロキシとしてNginxを設定する方法

  3. Debian11にYarnをインストールする方法