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に記録され、削除されます.
(2) haproxyログカット
haproyxログカットスクリプトは、既存のものがなく、毎日のログカットを実現するためにログカットスクリプトを作成し、計画タスクに参加します.必ずsu root -c root権限実行を強制します.アクセスログを保持する場合は、スクリプトインプリメンテーションを変更できます.
(3) haproxyプロファイルレコード
転載先:https://blog.51cto.com/koumm/1282152
アーキテクチャ図は次のとおりです.
アプリケーションクラスタの導入の特徴:
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