Haproxy負荷等化クラスタアーキテクチャ設計の一例

2902 ワード

会社は最近、ユーザーが1台の単機が最大ユーザー量の使用を負担できないことを心配しているため、クラスタの適用を要求しているプロジェクトがある.応用状況に基づいて応用クラスタアーキテクチャを設計した.
アーキテクチャ図は次のとおりです.
アプリケーションクラスタの導入の特徴:
1. フロントエンドエージェントの負荷分散
ユーザー環境インフラストラクチャは仮想化クラスタプラットフォームを採用し、サーバは仮想マシンを採用しているため、設計時に1台のHaproxyを採用して実現する.
フロントエンドはhaproxyを選びます:1つの最大の特徴のHTTPの第7層の鍵康の状態の検査があって、私達の実際の需要と一致して、いつも応用の圧力が大きいため、応用は応答することができない情況があって、ちょうどこの特性を通じて健康な状態の検査を行って、ユーザーの透明なアクセスを保証します.以前はhaporxyのプライマリ・スタンバイ・モードをデュアル・ホスト・アプリケーション・クラスタとして採用していた.プライマリ・スタンバイ・モードもhaproxyの大きな特徴です.
本スキームは負荷等化モードを採用しsourceモードを採用する.
 
2. アプリケーション・サーバー・セッションのレプリケーション
jbossの構成 セッションレプリケーション機能を適用し、ユーザーがセッションにログインして3台のサーバを共有することを保証します.
 
3. ストレージスペースの共有
共有ストレージ空間はクラスタアプリケーションに必須の機能であり,ここではnfsを用いて実現する.コードと添付ファイルなどのデータの一致を実現するために使用されます.
 
4. haproxy構成要点ファイルは以下のように記録されています.
 
(1) /var/log/messagesディレクトリへのログの記録を解除
デフォルトではhaproxyログも/var/log/messageに記録され、削除されます.
# vi /etc/syslog.conf
local3.*                       /var/log/haproxy.log
local0.*                       /var/log/haproxy.log
*.info;mail.none;authpriv.none;cron.none;local3.none      /var/log/messages

 
(2) haproxyログカット
haproyxログカットスクリプトは、既存のものがなく、毎日のログカットを実現するためにログカットスクリプトを作成し、計画タスクに参加します.必ずsu root -c root権限実行を強制します.アクセスログを保持する場合は、スクリプトインプリメンテーションを変更できます.
#!/bin/bash
# author: koumm
# desc:
# date: 2013-01-31
# version: v1.0
# modify:
# cut haproxy log
mv /var/log/haproxy.log /var/log/haproxy.log.bak
if [ -e /var/log/haproxy.log.bak ]; then
logrotate -f /etc/logrotate.conf
chown nobody:nobody /var/log/haproxy.log
chmod +x /var/log/haproxy.log
fi
sleep 1
if [ -e /var/log/haproxy.log ]; then
rm -rf /var/log/haproxy.log.bak
fi

 
(3) haproxyプロファイルレコード
global
log    127.0.0.1   local0
maxconn 65535
chroot /usr/local/haproxy
uid 99
gid 99
stats socket /usr/local/haproxy/HaproxSocket level admin
daemon
nbproc 1
pidfile /usr/local/haproxy/haproxy.pid
#debug
defaults
log    127.0.0.1    local3
mode   http
option httplog
option httplog clf
option httpclose
#option dontlognull
option forwardfor
option redispatch
retries 2
maxconn 2000
balance source
#balance roundrobin
stats   uri     /haproxy-stats
stats   refresh 10s
contimeout      5000
clitimeout      50000
srvtimeout      50000
listen  APP_Cluster 0.0.0.0:80
mode http
option httpchk GET /test.html HTTP/1.0\r
Host:192.168.0.110 server 192.168.0.111_node1 192.168.0.111:80 weight 3 check inter 2000 rise 2 fall 1 server 192.168.0.112_node2 192.168.0.112:80 weight 3 check inter 2000 rise 2 fall 1 server 192.168.0.113_node3 192.168.0.113:80 weight 3 check inter 2000 rise 2 fall 1 listen stats_auth 0.0.0.0:91 mode http stats enable stats uri /admin stats realm "LOGIN" stats auth admin:123456 #stats hide-version stats refresh 10s stats admin if TRUE

 
 
転載先:https://blog.51cto.com/koumm/1282152