CentOS 7
Sponsored Link

Pound : HTTP を負荷分散2015/06/09

 
HTTP/HTTPS 負荷分散ソフトウェア Pound をインストールします。
例として、ここでは以下のような環境で構築します。
        |
--------+--------------------------------------------------------------------
        |
        +-------------------+--------------------+--------------------+
        |10.0.0.30          |10.0.0.51           |10.0.0.52           |10.0.0.53
 +------+-----+     +-------+------+     +-------+------+     +-------+------+
 |  Frontend  |     |   Backend#1  |     |   Backend#2  |     |   Backend#3  |
 |   Pound    |     |  Web Server  |     |  Web Server  |     |  Web Server  |
 +------------+     +--------------+     +--------------+     +--------------+

 
Pound をインストールした Frontend サーバーへの HTTP 通信を Backend#1, Backend#2, Backend#3 の Webサーバーへ負荷分散するように設定します。
[1] Pound をインストールします。
# EPELからインストール

[root@dlp ~]#
yum --enablerepo=epel -y install Pound
[2] Pound の設定です。
[root@dlp ~]#
mv /etc/pound.cfg /etc/pound.cfg.org

[root@dlp ~]#
vi /etc/pound.cfg
User "pound"
Group "pound"
# ログレベル (5が最大)

LogLevel 3
# ログの出力先

LogFacility local1
# ハートビートを送る間隔 (秒)

Alive 30

# フロントエンドを定義

ListenHTTP
    Address 0.0.0.0
    Port 80
End

# バックエンドを定義

Service
    BackEnd
       # バックエンドサーバーのIPアドレス

        Address  10.0.0.51
       # バックエンドサーバーの待ち受けポート

        Port     80
       # 優先度を定義 (1-9 で指定。9が最優先)

        Priority 5
    End

    BackEnd
        Address  10.0.0.52
        Port     80
        Priority 5
    End

    BackEnd
        Address  10.0.0.53
        Port     80
        Priority 5
    End
End

[root@dlp ~]#
sed -i -e "s/^PIDFile/#PIDFile/" /usr/lib/systemd/system/pound.service

[root@dlp ~]#
systemctl start pound

[root@dlp ~]#
systemctl enable pound

[3] 指定したファシリティのログが取得できるように Rsyslog の設定を変更します。
[root@dlp ~]#
vi /etc/rsyslog.conf
# 54行目:以下のように変更

*.info;mail.none;authpriv.none;cron.none
,local1.none
  /var/log/messages
local1.*                                                /var/log/pound.log

[root@dlp ~]#
systemctl restart rsyslog

[4] バックエンド Webサーバーで X-Forwarded-For ヘッダーをロギングするよう設定しておきます。
[root@www ~]#
vi /etc/httpd/conf/httpd.conf
# 196行目:変更

LogFormat "
\"%{X-Forwarded-For}i\"
%l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
[root@www ~]#
systemctl restart httpd

[5] 任意のクライアントから Pound サーバーへ HTTP アクセスし、何度かリロードしたりバックエンドサーバーの一部を手動で停止する等して、動作を確認してください。
関連コンテンツ