HAProxy : HTTP を負荷分散2019/08/06 |
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:~# apt -y install haproxy
|
[2] | HAProxy の設定です。 |
root@dlp:~#
vi /etc/haproxy/haproxy.cfg # 最終行に追記 # フロントエンドを定義 ( 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 restart haproxy |
[3] | バックエンド Webサーバー (Apache2 の場合) で X-Forwarded-For ヘッダーをロギングするよう設定しておきます。 |
root@node01:~# a2enmod remoteip Enabling module remoteip. To activate the new configuration, you need to run: service apache2 restart
root@node01:~#
vi /etc/apache2/apache2.conf # 212-215行目:以下のように変更 # RemoteIPInternalProxy は HAProxy のIPアドレスを指定
RemoteIPHeader X-Forwarded-For RemoteIPInternalProxy 10.0.0.30 LogFormat "%v:%p %a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combinedLogFormat " %a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
systemctl restart apache2 |
[4] | 任意のクライアントからフロントエンドサーバーへ HTTP アクセスして動作を確認してください。 |
Sponsored Link |