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

CentOS8でHAProxyを設定する方法

HAProxyはHighAvailabilityProxyの略です。 Cで記述されており、TCPおよびHTTPベースのアプリケーション向けの無料のオープンソースTCP/HTTPロードバランサーおよびプロキシソリューションです。 HAProxyは、ワークロードを複数のサーバーに分散することにより、サーバー環境のパフォーマンスを向上させるために使用されます。

HAProxyを使用すると、障害が発生した場合に、アプリケーションを自動的に再起動したり、作業を別のサーバーに再ルーティングしたりできます。この強力で高性能、信頼性が高く、安全なロードバランサーは最も広く使用されており、非常にトラフィックの多いWebサイト用に特別に設計されています。

このチュートリアルでは、CentOS8でHAProxyを使用して高可用性ロードバランサーを設定する方法を示します。

前提条件

  • Atlantic.Netクラウドプラットフォーム上の3つの新しいCentOS8VPS
  • 各VPSで設定されたルートパスワード

このチュートリアルでは、次の設定を使用します:

HAProxyサーバー: –ホスト名:haproxy IP:192.168.0.10

Webサーバー1:- ホスト名:web1 IP:192.168.0.11

Webサーバー2:- ホスト名:web2 IP:192.168.0.12

ステップ1–Atlantic.Netクラウドサーバーを作成する

まず、Atlantic.Netクラウドサーバーにログインします。 1GB以上のRAMを搭載したオペレーティングシステムとしてCentOS8を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。

CentOS 8サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。

dnf update -y

ステップ2–Nginxのインストールと構成

注:WebServer1およびWebServer2でこの手順を完了してください

まず、NginxWebサーバーをweb1およびweb2インスタンスにインストールする必要があります。

次のコマンドを実行してNginxをインストールできます:

dnf install nginx -y

Nginxがインストールされたら、Nginxサービスを開始し、両方のインスタンスで起動時に開始できるようにします。

systemctl start nginx
systemctl enable nginx

次に、 index.htmlを変更します 各インスタンスのファイル。

index.htmlを変更します web1のファイル 次のコマンドを使用したインスタンス:

echo "This is My First Nginx Web Server" > /usr/share/nginx/html/index.html

index.htmlを変更します web2のファイル 次のコマンドを使用したインスタンス:

echo "This is My Second Nginx Web Server" > /usr/share/nginx/html/index.html

終了したら、ファイルを保存して閉じます。

ステップ3–HAProxyのインストールと設定

注:HAProxyサーバーでこの手順を実行してください

まず、次のコマンドを使用して、haproxyサーバーインスタンスにHAProxyをインストールします。

dnf install haproxy -y

インストールが完了したら、haproxyのデフォルト構成ファイルをバックアップします。

mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg-bak

構成ファイルは、4つの主要なセクションに分かれています。

  1. グローバル設定: プロセス全体のパラメータを設定するために使用されます。
  2. デフォルト: 他のすべてのセクションのデフォルトパラメータを設定するために使用されます。
  3. フロントエンド: バックエンドへのアクセスを有効にするためにHAProxyに外部からアクセスする方法を定義するために使用されます。
  4. バックエンド: プロキシが着信接続を転送するために接続するサーバーのセットを定義するために使用されます。

次に、次のコマンドを使用して新しいhaproxy構成ファイルを作成します。

nano /etc/haproxy/haproxy.cfg

インフラストラクチャに一致する次の行を追加します。

#———————————————————————

global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon

#統計UNIXソケットをオンにする

stats socket /var/lib/haproxy/stats

#システム全体の暗号化ポリシーを利用する

ssl-default-bind-ciphers PROFILE=SYSTEM
ssl-default-server-ciphers PROFILE=SYSTEM

#———————————————————————

defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000

#———————————————————————

#バックエンドにプロキシするメインフロントエンド

#———————————————————————

frontend haproxy_balancer # define the name of the frontend.
bind 192.168.0.10:80 # IP address of HAProxy server
option http-server-close
option forwardfor
stats uri /haproxy?stats # Specify the HAProxy status page.
default_backend webservers

#———————————————————————

#さまざまなバックエンド間のラウンドロビンバランシング

#———————————————————————

backend webservers#アプリケーションを識別するための名前を指定します

mode http
balance roundrobin # defines the roundrobin load balancer scheduling algorithm
option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost
server nginx-web1 192.168.0.11:80 check # IP address of the first backend server
server nginx-web2 192.168.0.12:80 check # IP address of the second backend server

注:サーバーの設定に関連するIPで上記のIPアドレスを修正してください

終了したら、ファイルを保存して閉じます。次に、次のコマンドを使用して、haproxy構成ファイルにエラーがないか確認します。

haproxy -c -f /etc/haproxy/haproxy.cfg

次の出力が得られるはずです:

Configuration file is valid

最後に、haproxyサービスを開始し、次のコマンドを使用して起動時に開始できるようにします。

systemctl start haproxy
systemctl enable haproxy

次のコマンドを使用してhaproxyを確認することもできます:

systemctl status haproxy

次の出力が得られるはずです:

  • haproxy.service - HAProxy Load Balancer
Loaded: loaded (/usr/lib/systemd/system/haproxy.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2020-04-24 02:14:55 EDT; 5min ago
Process: 1371 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q (code=exited, status=0/SUCCESS)
Main PID: 1373 (haproxy)
Tasks: 2 (limit: 6087)
Memory: 2.8M
CGroup: /system.slice/haproxy.service
├─1373 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
└─1374 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid

Apr 24 02:14:55 haproxy systemd[1]: Starting HAProxy Load Balancer...
Apr 24 02:14:55 haproxy systemd[1]: Started HAProxy Load Balancer.

ステップ4–HAProxyログを設定する

HAProxyログを使用すると、バックエンドWebサーバーへの各接続の統計を確認できます。

ファイル/etc/rsyslog.confを編集してrsyslogを構成できます:

nano /etc/rsyslog.conf

次の行のコメントを解除します:

module(load="imudp")
input(type="imudp" port="514")

終了したら、ファイルを保存して閉じます。次に、HAProxyログメッセージを受信して​​処理するようにrsyslogサーバーを構成する必要があります。

これを行うには、新しいhaproxy.conf構成ファイルを作成します。

nano /etc/rsyslog.d/haproxy.conf

次の行を追加します:

local2.=info /var/log/haproxy-access.log
local2.notice /var/log/haproxy-info.log

終了したら、ファイルを保存して閉じます。次に、rsyslogサービスを再起動し、次のコマンドを使用して起動時に開始できるようにします。

systemctl restart rsyslog
systemctl enable rsyslog

ステップ5–HAProxyの負荷分散をテストする

この時点で、HAProxyがインストールおよび構成されています。負荷分散が機能しているかどうかをテストするときが来ました。

Webブラウザーを開き、HAProxyIPhttp://192.168.0.10と入力します。次の画面に最初のNginxWebサーバーのコンテンツが表示されます。

次に、Webページを更新します。次の画面に2番目のNginxWebサーバーのコンテンツが表示されます。

URL http://192.168.0.10/haproxy?statsを使用して、haproxyのステータスを表示できます。次の画面に、サーバーの状態、現在の要求率、応答時間、およびその他のメトリックが表示されます。

結論

上記のガイドでは、CentOS 8でHAProxyを使用して高可用性ロードバランサーをセットアップする方法を学習しました。これで、ITインフラストラクチャとアプリケーションの要件に合わせてロードバランシングを簡単に設計および構成できます。 Atlantic.NetのVPSホスティングで試してみてください。


Linux
  1. CentOSでSFTPサーバーをセットアップする方法

  2. Ubuntu16.04でHAProxyをセットアップする方法

  3. CentOS 7 /RHEL7でNFSサーバーをセットアップする方法

  1. CentOS 7 /RHEL7でSysLogサーバーをセットアップする方法

  2. CentOSでMySQLレプリケーションを設定する方法

  3. CentOSでNTPサーバーをセットアップする方法は?

  1. CentOS7でVSFTPDを使用してFTPサーバーをセットアップする方法

  2. CentOS8でVSFTPDを使用してFTPサーバーをセットアップする方法

  3. CentOS 8 / RHEL8でDNSサーバー(バインド)をセットアップする方法