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
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/messageslocal1.* /var/log/pound.log 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
systemctl restart httpd |
| [5] | 任意のクライアントから Pound サーバーへ HTTP アクセスし、何度かリロードしたりバックエンドサーバーの一部を手動で停止する等して、動作を確認してください。 |
|
|
| Sponsored Link |
|
|