HaProxy は、Tumblr、GitHub、StackOverflow などの人気のあるサイトで使用されています。このガイドでは、Nginx を使用する Web サーバーのセットアップで HAProxy をインストールする方法について説明します。
ラボのセットアップ
示されているように、CentOS 7 サーバーの 3 つのインスタンス
ホスト名 IPアドレス
load_balancer 3.17.12.132
server_01 3.19.229.234
server_02 3.17.9.217
ステップ 1: ロード バランサーの /etc/hosts ファイルを編集する
まず、ロード バランサ システムにログインし、/etc/hosts ファイルを変更して、次のように 2 つの Web サーバーのホスト名と IP アドレスを含めます。
$ なぜなら / 等 / ホスト
3.19.229.234 server_01
3.17.9.217 サーバー-02
完了したら、変更を保存して構成ファイルを終了します。
次に、各 Web サーバーにアクセスして、 /etc/ホスト ロード バランサの IP アドレスとホスト名を含むファイル
3.17.12.132 ロードバランサーその後、server_01 からロードバランサに ping できることを確認します
同様にserver_02から
また、ロード バランサーからサーバーに ping を実行できることを確認してください。
完全 !すべてのサーバーがロードバランサーと通信できます!
ステップ 2: HA プロキシをロード バランサーにインストールして構成する
HA Proxy は CentOS の公式リポジトリから簡単に入手できるため、yum または dnf パッケージ マネージャーを使用してインストールします。
ただし、いつものように、最初にシステムを更新します
# ヤムアップデート次に、示されているように HA Proxy をインストールします。
# yum インストール ハプロキシインストールが成功したら、haproxy ディレクトリに移動します。
# CD / 等 / ハプロキシベスト プラクティスでは、変更を行う前に構成ファイルをバックアップする必要があります。だからバックアップ haproxy.cfg ファイル名を変更します。
# mv haproxy.cfg haproxy.cfg.bak次に、続行して構成ファイルを開きます
なぜなら haproxy.cfg示されているように変更を行っていることを確認してください
#------------------------------------------------- --------------------# 全体設定
#------------------------------------------------- --------------------
グローバル
ログ 127.0.0.1 local2 #ログ設定
chroot / だった / ライブラリ / ハプロキシ
pidファイル / だった / 走る / haproxy.pid
マックスコン 4000
ユーザー ハプロキシ #ユーザーおよびグループ 'haproxy' の下で実行されている Haproxy
グループ ハプロキシ
デーモン
# stats unix ソケットをオンにする
統計ソケット / だった / ライブラリ / ハプロキシ / 統計
#------------------------------------------------- --------------------
# すべての 'listen' および 'backend' セクションが行う共通のデフォルト
# ブロック内で指定されていない場合に使用
#------------------------------------------------- --------------------
デフォルト
モード http
ログ グローバル
オプション httplog
オプション dontlognull
オプション http-server-close
オプション forwardfor 127.0.0.0 を除く / 8
オプション 再発送
再試行 3
タイムアウト http リクエスト 10 秒
タイムアウト キュー 1 分
タイムアウト接続 10 秒
タイムアウト クライアント 1m
タイムアウト サーバー 1m
タイムアウト http キープアライブ 10 秒
タイムアウト チェック 10 秒
マックスコン 3000
#------------------------------------------------- --------------------
#HAProxy モニタリング構成
#------------------------------------------------- --------------------
haproxy3-モニタリングを聞く * : 8080 #Haproxy モニタリングはポート 8080 で実行されます
モード http
オプション forwardfor
オプション httpclose
統計 有効
統計ショーの伝説
統計更新 5 秒
統計ウリ / 統計 #HAProxy 監視用 URL
統計領域 Haproxy\ 統計
統計認証 Password123: Password123 #監視ダッシュボードにログインするためのユーザーとパスワード
統計管理者 もしも 真実
default_backend app-main #これはオプションでバックエンドを監視するためのものです
#------------------------------------------------- --------------------
# フロントエンド構成
#------------------------------------------------- --------------------
フロントエンドメイン
練る * : 80
オプション http-server-close
オプション forwardfor
default_backend app-main
#------------------------------------------------- --------------------
# バランス アルゴリズムとしてのバックエンド ラウンド ロビン
#------------------------------------------------- --------------------
バックエンド app-main
バランスラウンドロビン #バランスアルゴリズム
オプション httpchk HEAD / HTTP / 1.1 \r\nホスト:\ localhost
#サーバー アプリケーションが正常に動作していることを確認します - 200 ステータス コード
サーバー server_01 3.19.229.234: 80 小切手 #Nginx1
サーバー server_02 3.17.9.217: 80 小切手 #Nginx2
最後の 2 行に示されているように、Web サーバーのホスト名と IP アドレスを必ず変更してください。変更を保存して終了します。
次のステップでは、HAProxy 統計をログに記録できるように Rsyslog を構成します。
# なぜなら / 等 / rsyslog.conf以下の行のコメントを外して、UDP 接続を許可してください。
$ModLoad imudp$UDPServerRun 514
次に、続行して新しい構成ファイルを作成します haproxy.conf
# なぜなら / 等 / rsyslog.d / haproxy.conf次の行を貼り付け、保存して終了します
local2.=情報 / だった / ログ / haproxy-access.log #アクセスログ用local2.notice / だった / ログ / haproxy-info.log #サービス情報用 - バックエンド、ロードバランサ
変更を有効にするには、次のように rsyslog デーモンを再起動します。
# systemctl 再起動 rsyslog次に、HAProxy を起動して有効にします
# systemctl start rsyslog# systemctl enable rsyslog
HAProxy が実行されていることを確認する
# systemctl ステータス rsyslogステップ 3: Nginx をインストールして構成する
さて、あとはNginxのインストールだけです。各サーバーにログインし、最初にシステム パッケージを更新します。
# ヤムアップデート次に、EPEL(エンタープライズ Linux 用の追加パッケージ)をインストールします
# yum インストール ウォームリリースNginx をインストールするには、次のコマンドを実行します。
# yum インストール nginx次に、Nginx を起動して有効にします
# systemctl start nginx# systemctl enable nginx
次に、ロード バランサーが両方のサーバーに Web トラフィックを分散する方法を実証またはシミュレートするために、両方のケースで index.html ファイルを変更します。
server_01 の場合
# エコー 'server_01.Hey ! 最初の Web サーバーへようこそ' > index.htmlserver_02 の場合
# エコー 'server_02.Hey ! 2 番目の Web サーバーへようこそ' > index.html変更を有効にするには、Nginx を再起動します。
# systemctl 再起動 nginxステップ 4: ロードバランサーが機能しているかどうかをテストする
最終的に、構成が機能しているかどうかを確認したいところまで来ました。というわけでロードバランサーにログインしてcurlコマンドを繰り返し実行
# カール 3.17.12.132server_01 と server_02 からの index.html の値を示す出力がターミナルに交互に表示されるはずです。
それでは、Web ブラウザを使用してテストしてみましょう。ロードバランサーの IP アドレスを参照する
http: /// ロードバランサーの IP アドレス最初のページには、任意の Web サーバーからのコンテンツが表示されます
Web ページを更新して、他の Web サーバーからのコンテンツが表示されるかどうかを確認します。
完全 !ロード バランスにより、2 つの Web サーバー間で IP トラフィックが均等に分散されます。
これで、CentOS 8 に HAProxy をインストールして構成する方法に関するこのチュートリアルを終了します。フィードバックをお待ちしております。