CentOS 8 で Nginx のロード バランサーとして HAProxy をセットアップする方法

Centos 8 De Nginx Norodo Baransatoshite Haproxy Wosettoappusuru Fang Fa



HAProxy とも呼ばれる High Availability Proxy は、軽量で高速なロード バランサーであり、プロキシ サーバーとしても機能します。ロードバランサーとして、特定の基準を使用して複数の Web サーバーに着信 Web トラフィックを分散する上で重要な役割を果たします。そうすることで、単一の Web サーバーが過負荷になる可能性のある同時要求が多すぎる場合に、高可用性とフォールト トレランスが確保されます。

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.html

server_02 の場合

# エコー 'server_02.Hey ! 2 番目の Web サーバーへようこそ' > index.html

変更を有効にするには、Nginx を再起動します。

# systemctl 再起動 nginx

ステップ 4: ロードバランサーが機能しているかどうかをテストする

最終的に、構成が機能しているかどうかを確認したいところまで来ました。というわけでロードバランサーにログインしてcurlコマンドを繰り返し実行

# カール 3.17.12.132

server_01 と server_02 からの index.html の値を示す出力がターミナルに交互に表示されるはずです。

それでは、Web ブラウザを使用してテストしてみましょう。ロードバランサーの IP アドレスを参照する

http: /// ロードバランサーの IP アドレス

最初のページには、任意の Web サーバーからのコンテンツが表示されます


Web ページを更新して、他の Web サーバーからのコンテンツが表示されるかどうかを確認します。

完全 !ロード バランスにより、2 つの Web サーバー間で IP トラフィックが均等に分散されます。
これで、CentOS 8 に HAProxy をインストールして構成する方法に関するこのチュートリアルを終了します。フィードバックをお待ちしております。