Haproxy負荷分散と高可用性

HAPROXYプロフィール
     HAProxyは、それは、高速かつ信頼性の高いAの負荷分散ソリューション無料です、仮想ホストの高可用性、負荷分散、およびプロキシTCPとHTTPベースのアプリケーション、サポートを提供しています。HAProxy特に通常、彼らはや7つの治療セッションを維持する必要がウェブサイトのそれらの大きな負荷のために。現在のハードウェア上のHAProxyランニングは、数千の同時接続をサポートすることができます。Webサーバーがネットワークに公開されていない保護しながら、そして、その動作モードは、現在のセキュリティアーキテクチャに統合することが本当に簡単になります。
2は、HAProxyは、によって特徴づけられる:
1、HAProxyは、仮想ホストをサポートします。
2、利点HAProxy nginxのようなクッキーを案内支持セッション保持、のようないくつかの欠点を補完することができ、支持体のバックエンドサーバの状態が指定されたURLを取得することによって検出しました。
3、ソフトウェアのバランスをとるだけ負荷LVS、それ自体と同様のHAProxy、単純HAProxy効率比nginxのから速度の点でより良好な負荷分散を有することになるが、同時処理にnginxのに優れています。
4は、HAProxy TCPプロトコルのサポートは、転送のバランス、ロード・バランシングがMySQLの上で読むことができ、負荷、バックエンドでのMySQLのノードが検出して負荷分散するために、あなたは、負荷分散のMySQLマスタースレーブを行うにはLVS + keepalivedのを使用することができます。
5、戦略のバランスを取るHAProxyの負荷が非常に多く、HAProxyロードバランシングアルゴリズムは、現在、特定のある8種類あります。
  ①ラウンドロビンは、簡単なアンケートを表し、これくらいは言った、これは基本的にロードバランシングを持っている、
  ②静的-RRを表明、重量、提案された注目によれば
  、最小接続、最初の治療、提案注目表し③leastconn;
  ④ソース、番組要求元IPを、同様のIP_hash機構nginxのと、これは、我々は、セッションの問題を解決する方法として、それを使用し、我々は上に焦点を提案します;
  ⑤RI、番組リクエストURI;
  ⑥rl_param、番組URLのバランスurl_param 'URL ANパラメータ名必要パラメーター要求、
  ⑦HDR(名)、ロックヘッドショー各HTTP要求のHTTPリクエスト;
  ⑧RDP-クッキー(名)、ロッククッキー(名)およびTCPハッシュリクエストごとにデータ表現に応じて。
図3は、詳細な5つの部分にhaproxy構成
グローバル:プロセス・レベル・パラメータ、およびオペレーティングシステムは、典型的です。これらのパラメータは、通常、設定が正しい場合、再びそれを変更する必要はありません、一度設定されている
フロントエンド、バックエンドを使用することができ、デフォルトの設定パラメータ、アセンブリ聞く:デフォルトの
フロントエンド:、ルールはフロントエンドより直接指定することができ、要求を受信フロントエンドの仮想ノードは、具体的な使用のバックエンドバックエンド
バックエンド:バックエンドサービスのクラスタ構成、実サーバ、一つ以上のエンティティに対応するバックエンドサーバ
ガラス張りとの組み合わせは、ボディバックエンドリスン
4を、haproxyは、設定項目を説明
######### ##グローバルコンフィギュレーション#########
グローバル
 ログ127.0.0.1 LOCAL0#ログ出力の設定は、すべてのログレコードがLOCAL0出力によって、システムログ中に存在している
 通常、ログレベルのログ127.0.0.1 LOCAL1通知#notice 24のレベルがある(エラーデバッグwarringinfo)
 nbproc 1#を設定プロセスの数、または通常の2倍のCPUコアの数
 pidファイル/etc/haproxy/haproxy.pid #haproxyプロセスPIDファイルは
 接続の4096#最大数(ulimitの-Nを限定するものと見なされるべき)をMAXCONN
 #chrootを/ usr / share / haproxy #chroot走行路が
 99人の#ユーザーがuidをuidを
 GID#99ユーザGID
 局のサービス形態が可能後、デーモン#デーモンモードを
 #デバッグ#haproxyデバッグレベルのみオープンシングルプロセスのデバッグに推奨され
########デフォルトの設定############
デフォルトは
 #グローバルコンフィギュレーション定義されたログのグローバルログを定義するログ
 のhttp#デフォルトモードモード{TCP | HTTP |健康}モードを 、TCP 4層は、http 7層、健康だけでOKを返します
 。オプションHTTPLOG#HTTPログ形式のログを使用して、カテゴリをログ
 #option dontlognull#ログに記録する健康情報をチェックしません             
 リトライ3つの#チェックノードサーバの障害を、到達に3回連続で失敗し、そのノードが利用できないことを
 、バックエンドサーバーのニーズが実際のクライアントのIPパラメータを設定する必要があり、#optionに私はforwardfor#HTTPヘッダークライアントから取得することができます取得する場合
 #option httpclose各要求#HTTP積極的に閉じられた通路の完了後、haproxyこのモードのキープアライブ、唯一のアナログ実装がサポートしていない
 接続の#最大数4096をMAXCONN
 接続時間#5000 contimeout
 clitimeoutクライアント#50000タイムアウト
 srvtimeout 50000#サーバのタイムアウト時間は
 2000#ハートビートタイムアウトチェック#TIMEOUT
 #TIMEOUTのhttp-キープalive10s#デフォルト持続的接続時間
 のhttpリクエスト10S #TIMEOUT#デフォルトのHTTPリクエストの時間
 #timeoutqueue 1メートル#デフォルトキューのタイムアウト
  ########統計ページレイアウト########
admin_stats聞く
   バインド0.0.0.0:1080#が必要なカスタム名としてフロントエンドとバックエンド、モニタリンググループ、の組み合わせの名前を設定します
   モードのhttp #http 7層モデルの
   オプションHTTPLOG#HTTP形式ログ使用して
   127.0.0.1 LOCAL0 ERR##logエラー・ログ・レコードは、
  接続の10#のデフォルトの最大数MAXCONN
  統計リフレッシュ1930#統計ページが自動的にリフレッシュ時間
  統計URI /統計#統計ページをURL
  統計分野Crushlinux \プロンプト統計ページでHaproxy#パスワードテキストボックスは
  認証管理統計:管理者#は、ユーザーとパスワードの監視ページ設定:管理者が、あなたは、複数のユーザー名を設定することができます
  統計上HAProxyを隠し、バージョン番号を隠す統計ページバージョン情報
  # TRUE#の設定であれば統計管理手動で有効/無効、(haproxy-1.4.9バージョン後の)バックエンドサーバ
########セットhaproxyエラーページ#####
  ERRORFILE 403 /ホーム/ haproxy / haproxy / errorfiles /403.http
  ERRORFILE 500 /home/haproxy/haproxy/errorfiles/500.http
  502 /home/haproxy/haproxy/errorfiles/502.http ERRORFILE
  ERRORFILE 503 /home/haproxy/haproxy/errorfiles/503.http
  ERRORFILE 504 /home/haproxy/haproxy/errorfiles/504.http
########フロントエンドフロントエンドの設定##############
* bibind:それは推奨され80位*バインドを使用するには:80個の方法、または他の高可用性クラスタを行うと問題がある場合、VIPは別のマシンに切り替えることはできません訪問しました。
  -iはwww.abc.com #aclルール名、-iは、アクセスしたいドメイン名で、背後にあるACLウェブHDR(ホスト)
  ACLのimg HDR(ホスト)-i img.abc.com#今回の訪問であればwww.abc.comドメインは、以下のスコープのWebサーバに配布されます。
                       #あなたがこの範囲をimgserverに配布img.abc.com.cnを訪問すれば。
  IFウェブウェブサーバuse_backend
  use_backend imgserver IF IMG
########バックエンド、バックエンドの設定##############
バックエンドWebサーバ#webserverスコープ
  モードのhttp
  ポーリングラウンドロビン#banlanceラウンドロビンバランスは、バランスのソースは、静的-RRのサポートをセッション値を保存するために、leastconn、まず、 URI パラメータの
  オプションhttpchk /index.htmlがHTTP / 1.0#健康検査、試験紙、背景のindex.htmlに配布した場合にアクセス未満と、それはもはや配布
  サーバweb1と192.168.200.103:80クッキー1つの重量1つの2インターライズ秋2000 3チェック
  サーバーWEB2 192.168.200.104:80クッキー重量1つの2 2ライズ秋2000チェックインター3
  #cookie 1表わされるSERVERIDを1、チェックは、インター1500は心拍数を検出することで
  、#riseを2回2が正しいサーバーが利用可能であると考えられているが3 3は、サーバが使用不能だと思う失敗で落ちる、重量が重量表し
  imgserverバックエンド
  MODE HTTP
  /index.phpオプションhttpchk
  バランスラウンドロビン
  サーバーimg01 192.168。 200.105:80秋2000インター3チェック。
  サーバーimg02 192.168.200.106:80チェック秋2000インター3。
######## ################# TCPを配置し
test1の聞く
  バインド0.0.0.0:90
  MODE TCPの
  tcplog使用してオプション#1 tcplogログカテゴリ
  MAXCONN 4086
  LOCAL0デバッグの#log 127.0.0.1
  サーバーS1を1つの重量192.168.200.107:80
  サーバS2 192.168.200.108:80重量。1
。5、Haproxy基づいて構築バランシングクラスタの負荷
1を、インストール構成Haproxy
Haproxyソースパッケージの依存関係およびコンパイラのインストールを取り付ける
[ルート@ localhostの〜]#yumをインストール-Y-C GCC GCC ++ PCREメイクbzip2の-develのdevelの
[ルート@ localhostの〜]#タールXF haproxy- -C 1.4.24.tar.gzは/ usr / src /
[ルート@ localhostの〜]#CD /usr/src/haproxy-1.4.24/
[@ localhostのHAProxyルート-1.4.24]#&&作るメイクTARGET = linux26インストール
ビルドhaproxy設定ディレクトリとファイルを
[ルート@ localhostのhaproxy-1.4.24] #ます。mkdirは/ etc / haproxy
[ルート@ localhostのhaproxy-1.4.24]#cpは例/ haproxy.cfgの/ etc / haproxy /
haproxy配置文件修改
[ルート@ localhostの〜]#vimの/etc/haproxy/haproxy.cfg
#この設定はhaproxy-1.1を必要とします。 28またはhaproxy-1.2.1
グローバル
#ログ127.0.0.1はlocal0
#ログ127.0.0.1 LOCAL1通知
    ログは/ dev / LOCAL0情報ログ
    LOCAL0通知をログ/ログ/ devが
    4096のMAXCONN
    UID 99の
    、GID 99の
    デーモンの
デフォルトは
    グローバルログ
    モードのhttp
    オプションHTTPLOG
    リトライを3
    MAXCONN 4096
    contimeout 5000
    clitimeout 50000
    srvtimeout 50000
0.0.0.0:80 webcluster聞きます
    オプションhttpchk GET /index.htmlが
    ラウンドロビンバランス
    192.168.200.113:80チェック間2000秋3 INST1サーバー
    192.168.200.114:80チェック間2000秋INST1サーバ3は
admin_statsを聞くが
    0.0.0.0:8000バインド
    モードのhttp
    オプションHTTPLOG
    MAXCONN 100
    統計リフレッシュ30代
    統計URI /統計情報
    統計情報分野Crushlinux \ Haproxy
        統計認証管理者:管理者
    の統計非表示バージョン 
准备服务自启动脚本
[ルート@ localhostの〜]#cpは/usr/src/haproxy-1.4.24/examples/haproxy.initの/ etc / init.dディレクトリ/ haproxy
[ルート@ localhostの〜]#LN -sは/ usr / local / sbinに/ haproxyは/ usr / sbinに/ haproxy
[ルート@ localhostの〜]#chmodの+ X /etc/init.d/haproxy
[ルート@ localhostの〜]#が開始/etc/init.d/haproxy
開始haproxy:[确定]
2、安装配置のWeb服务nginxの  
Nginx1、Nginx2配置相同、
[ルート@ localhostの〜]#yumを-yのGCCのgcc-C ++をインストールメイクPCRE-develのはzlib-develのopensslの-develの
[ルート@ localhostの〜]#useraddの-M -s / sbinに/ nologinにnginxの
[ルート@ localhostの〜]#タールXFのnginx-1.6.2.tar.gz -Cは/ usr / SRC
[ルート@ localhostの〜]#のCDの/usr/src/nginx-1.6.2
[ルート@ localhostのnginxの-1.6.2]#は./configure --prefix =は/ usr / local / nginxの--user = nginxの-グループ= nginxの&&メイク&& make installを
[ルートを@ localhostのnginxの-1.6.2]#のCDは/ usr / local / nginxの/ HTML /
nginx1:
[ルート@ localhostの〜]#エコー"111111">は/ usr / local / nginxの/ HTML / index.htmlを
[ルート@ localhostの〜]#は/ usr / local / nginxの/ sbinに/ nginxの
nginx2:
[ルート@ localhostの〜]#エコー"222222"> /usr/local/nginx/html/index.html
[ルート@ localhostの〜]#は/ usr / local / nginxの/ sbinに/ nginxの
6、Haporxy + keepalivedの上に構築されました。クラスタ・バランシング、高可用性、負荷
4台の仮想マシン2 nginxの2 HAProxy準備する1、
2を、2つのnginxの
[nginxの-1〜@ルート]#yumを-y PCREメイクのdevel zlibの-develのGCCのgcc-C ++をインストールし
ます。[root @ 〜。1-nginxの] -M#useraddの-s / sbinに/ nologinにnginxの
[ルート-nginxの@〜。1]#nginxのタール-1.6.2.tar.gz -C XFは/ usr / src
[ルート-nginxの@〜。1] CD /usr/src/nginx-1.6.2#
[nginxの@ルート-nginxの-1.6.2。1]#は./configure --prefix =は/ usr / local / nginxのnginxの--group --user = = &&メイクnginxの&&メイクをインストールする
[nginxのルート-nginxの-1.6.2 @ 1。]#CDは/ usr / local / nginxの/ HTML /
nginx1:
[ルート@ localhostの〜]#エコー"111111">は/ usr / local / nginxの/ HTML /インデックス.htmlを
[ルート@ localhostの〜]#は/ usr / local / nginxの/ sbinに/ nginxの
nginx2:
[ルート@ localhostの〜]#エコー"222222"> /usr/local/nginx/html/index.html
[ルート@ localhostの〜]# / usr / local / nginxの/ sbinに / nginxの
 
インストール構成一貫したHaproxy二つのマシン:
[。ルート-Haproxy @〜1]#yumを-Y-C GCC GCC ++ PCREをインストールメイクbzip2の-develのdevelの
[。ルート-Haproxy @〜1]タール-1.4.24.tar.gz HAProxy XF#-Cは/ usr / src /
[ルート-Haproxy @〜。1]#CD /usr/src/haproxy-1.4.24/
[Haproxy @ルート-HAProxy-1.4。1。 24]#メイクTARGET = linux26 && make installを
ビルドhaproxy設定ディレクトリとファイルを
] haproxy-1 haproxy-1.4.24 @ルート[#ます。mkdirは/ etc / haproxy
haproxy-1 haproxy-1.4.24]#cpは例@ [ルート/haproxy.cfgの/ etc / haproxy /
 変更haproxy設定ファイル:
[。ルート-haproxy @〜1]#Vimの/etc/haproxy/haproxy.cfg
#この設定はhaproxy-1.1.28またはhaproxy-1.2.1必要
グローバル
#ログを127.0.0.1 LOCAL0
#ログ127.0.0.1 LOCAL1通知
    ログは/ dev /ログインLOCAL0情報
    ログは/ dev /ログインLOCAL0予告
    MAXCONN 4096
    のuid 99
    gidの99
    デーモン
デフォルト
    ロググローバル
    モードのhttp
    オプションHTTPLOG
    リトライ3
    MAXCONN 4096
    contimeout 5000
    clitimeout 50000
    srvtimeout 50000
0.0.0.0:80 webcluster聞く
    オプションhttpchk GET /index.htmlが
    ラウンドロビンバランス
    192.168.200.113:80チェック間2000年秋INST1サーバー3
    2000インテルが192.168.200.114:80チェックサーバ3フォールINST1
聞くadmin_stats
    バインド0.0.0.0:8000
    MODE HTTP
    オプションHTTPLOG
    MAXCONN 100
    統計の更新30代
    統計URI /統計情報
    統計情報分野Crushlinux \ Haproxy
        統計認証ADMIN:ADMIN
    統計非表示バージョン
の発売以来作成スクリプト
[ルート-Haproxy @〜。1]#CP /usr/src/haproxy-1.4.24/examples/haproxy.init /etc/init.d/haproxy
[ルート-Haproxy @〜。1] LN#-sは/ usr /ローカル/ sbinに/ HAProxyは/ usr / sbinに/ HAProxy
[ルート-Haproxy @〜。1]#個のXはchmod + /etc/init.d/haproxy
スタート/etc/init.d/haproxy [ルート-Haproxy @〜。1]#
開始haproxy:[OK]
 
クライアントアクセステスト:
アクセスに別のブラウザを使用します
不同即为成功结果
 
编译安装keepalivedの服务
[Haproxy-1〜@ルート]#yumを-yインストールkeepalivedの
[Haproxy-1〜@ルート]#vimの/etc/keepalived/keepalived.conf
keepalivedのための設定ファイル
global_defs {
        notification_email {
                [email protected]
        }
        notification_email_from [email protected]
        SMTP_SERVER 192.168.200.1
        smtp_connect_timeout 30
        ROUTER_ID LVS_DEVEL
        vrrp_skip_check_adv_addr
        vrrp_strict
        vrrp_garp_interval 0
        vrrp_gna_interval 0
}
vrrp_script chk_http_port {
        スクリプト"/root/check_haproxy.sh"
        間隔2
        重量-20
}
VI_1 vrrp_instance {
        状態マスター
        インターフェースens32
        51 virtual_router_id
        優先順位100
        advert_int 1つの
        認証{
        AUTH_TYPEパス
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.200.254
    }
    track_script {
        chk_http_port
    }
}
 第二台Haproxy配置keepalibed主配置文件
Haproxy @ [ルートを-2〜]#猫/etc/keepalived/keepalived.conf
keepalivedのための設定ファイル
global_defs {
        notification_email {
                [email protected]
        }
        notification_email_from [email protected]
        SMTP_SERVER 192.168.200.1
        smtp_connect_timeout 30
        ROUTER_ID LVS_DEVEL
        vrrp_skip_check_adv_addr
        vrrp_strict
        vrrp_garp_interval 0
        vrrp_gna_interval 0
}
vrrp_script chk_http_port {
        スクリプト"/root/check_haproxy.sh"
        区間2
        重量-20
}
vrrp_instance VI_1 {
        状態BACKUPの
        インターフェースens32は
        51 virtual_router_id
        優先90
        advert_int 1
        {認証
        PASS AUTH_TYPE
        AUTH_PASS 1111
    }
    virtual_ipaddress {
        192.168.200.254
    }
    track_script {
        chk_http_portは
    }
}          
両方のマシンスクリプトhaproxy検出上に配置されている
[ルート-Haproxy @〜。1] /etc/keepalived/check_haproxy.shカタログ番号
#!/ binに/ bashの
NUM `--no HAProxy PS -C = -header | WCは-l`
IF [NUM -eq $ 0]
次に
    スタート/etc/init.d/haproxy
    SLEEP 3。
    ` --no-PSヘッダ-C HAProxy IF [| WC -eq 0 -l`]
    その後、
        systemctl STOPはkeepalivedの
    Fiの
Fiの
[ルート-Haproxy @〜。1]#X /root/check_haproxy.shます。chmod +を
[Haproxy-1〜@ルート] #サービスを開始keepalivedの
 
 
 
 
 
 
 
 
 
 
 
 
 
 
参照をします。https://www.cnblogs.com/crushlinux/p/6738982.htm

おすすめ

転載: www.cnblogs.com/elin989898/p/11955540.html