HAProxy : HTTP を負荷分散2024/11/14 |
HAProxy によるロードバランサーの構築です。 -----------+---------------------------+--------------------------+------------ | | | |10.0.0.30 |10.0.0.51 |10.0.0.52 +----------+-----------+ +-----------+----------+ +-----------+----------+ | [ dlp.srv.world ] | | [ node01.srv.world ] | | [ node02.srv.world ] | | HAProxy | | Web Server#1 | | Web Server#2 | +----------------------+ +----------------------+ +----------------------+ |
HAProxy をインストールしたサーバーへの HTTP 通信をバックエンドの Web Server#1, Web Server#2 へ負荷分散するように設定します。 |
|
[1] | HAProxy をインストールします。 |
[root@dlp ~]# dnf -y install haproxy
|
[2] | HAProxy の設定です。 |
[root@dlp ~]#
vi /etc/haproxy/haproxy.cfg # 既存の [frontend ***] [backend ***] セクションは # コメント化して自身に必要な設定を最終行に追記 # フロントエンドを定義 ( http-in の箇所は任意の名前 ) frontend http-in # 80 ポートで待ち受け bind *:80 # デフォルトのバックエンドを定義 default_backend backend_servers # X-Forwarded-For ヘッダーを渡す option forwardfor # バックエンドを定義 backend backend_servers # ラウンドロビンで負荷分散 balance roundrobin # バックエンドサーバーを定義 server node01 10.0.0.51:80 check server node02 10.0.0.52:80 check systemctl enable --now haproxy |
[3] | Firewalld を有効にしている場合は、HAProxy が待ち受けるポートの許可が必要です。 |
[root@dlp ~]# firewall-cmd --add-service=http success [root@dlp ~]# firewall-cmd --runtime-to-permanent success |
[4] | HAproxy のデフォルト設定では [local2] ファシリティへログが送信されるため、ファイルに記録できるように Rsyslog の設定を変更します。 |
[root@dlp ~]#
vi /etc/rsyslog.conf # 32, 33行目 : コメント解除して追記 module(load="imudp") # needs to be done just once input(type="imudp" port="514") $AllowedSender UDP, 127.0.0.1
# 48行目 : 以下のように変更 *.info;mail.none;authpriv.none;cron.none;local2.none /var/log/messages local2.* /var/log/haproxy.log[root@dlp ~]# systemctl restart rsyslog |
[5] | バックエンド Web サーバー (Apache httpd の場合) で X-Forwarded-For ヘッダーをロギングするよう設定しておきます。 |
[root@node01 ~]#
vi /etc/httpd/conf/httpd.conf # 201, 202行目 : 以下のように変更 LogFormat " \"%{X-Forwarded-For}i\" %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedLogFormat " \"%{X-Forwarded-For}i\" %l %u %t \"%r\" %>s %b" common
systemctl restart httpd |
[6] | 任意のクライアントコンピューターから HAProxy フロントエンドサーバーへ HTTP アクセスして動作を確認しておきます。 |
Sponsored Link |
|