1、HAPROXYプロフィール
HAProxyは、仮想ホストをサポートして、高可用性、負荷分散、およびプロキシTCPとHTTPベースのアプリケーションを提供し、それは解決策を、ロードバランシング、無料の高速かつ信頼性の高いです。特に通常、彼らが維持または7つの治療セッションする必要があるウェブサイトのそれらの大きな負荷のためHAProxy。HAProxy現在のハードウェア上で実行すると、数千の同時接続をサポートすることができます。Webサーバーがネットワークに公開されていない保護しながら、そして、その動作モードは、現在のセキュリティアーキテクチャに統合することが本当に簡単になります。
公式サイト:のhttp://www.haproxy.com
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にパラメータ名を必要とする。
⑦HDR(名)、ロックヘッドは、各HTTPリクエストに対するHTTPリクエストを示す図です。
⑧RDP-クッキー(名)、TCPに応じてロックし、すべての要求をハッシュするためにクッキー(名)に従って、表します。
詳細な5つの部分に3、haproxy構成
1、グローバル:プロセス・レベル・パラメータは、通常、オペレーティングシステムされています。これらのパラメータは、一般的に正しく設定されている場合、あなたは再び変更する必要はありませんが、一度設定されています
2、デフォルト:フロントエンド、バックエンドを使用することができ、デフォルトの設定パラメータ、アセンブリを聞きます
図3に示すように、フロントエンド:要求を受信するフロントエンド仮想ノード、フロントエンドルールは、より具体的に直接指定されたバックエンド・バックエンドを使用することができます
4、バックエンド:クラスタ構成のバックエンドサービス、実サーバ、バックエンドサーバは、1つまたは複数のエンティティに対応します
図5に示すように、前面にバックエンド及びそれらの組み合わせを聴きます
4、ケース環境:
プライマリホスト・オペレーティング・システム・ソフトウェアのIPアドレス
haproxy centos7 192.168.200.113 haproxy-1.4.24.tar.gz
nginxの主centos7 192168200114 nginxの-1.6.2.tar.gz
nginxの备centos7 192168200115 nginxの-1.6.2.tar.gz
5、インストール構成Haproxy
5.1インストールHaproxyソースパッケージの依存関係およびコンパイラのインストール
[ルート@のansible〜]#ホスト名haproxy
[ルート@ ansible〜]#bashの
[ルート@のhaproxy〜]#yumをGCCのgcc-C ++インストールPCRE-のdevel bzip2の-develの-Y作ります
[ルート@のhaproxy〜]#のRZの
受信を待機してRZ。
[ルート@ haproxy〜]#タールXFのhaproxy-1.4.23.tar.gz -Cは/ usr / src
[ルート@ haproxy〜]#のCD /usr/src/haproxy-1.4.23/
[haproxy haproxy-1.4 @ルート0.23]#はTARGET = linux26を作る&& make installを
5.2 haproxyの設定ディレクトリとファイルの確立
#1 MKDIRの/ etc / haproxy [haproxy haproxy-1.4.23 @ルート]
[haproxy haproxy-1.4.23 @ルート]#のcp例/ haproxy.cfgの/ etc / haproxyは/
はじめに5.3 haproxyの設定項目
グローバル######### ###########
グローバル
127.0.0.1のLOCAL0#ログ出力の設定を記録し、すべてのログ・レコードは、出力はlocal0システムログに存在しています
ログレベルについて127.0.0.1のLOCAL1通知#noticeログ、通常、24のレベル(デバッグwarringinfoエラー)
nbproc 1#は、通常、プロセス数、CPUコア数が2倍に設定しますか、
pidファイルは#haproxyプロセスのPIDファイルを/etc/haproxy/haproxy.pid
(ulimitの-Nを限定するものと見なされるべき)接続のMAXCONN 4096#最大数
パスを実行している#chrootを/ usr / share / haproxy #chroot
ユーザーのuid UID 99#
ユーザーGIDのGID 99#
デーモン#デーモンモード、サービスの形の後に台湾を許可
#haproxyデバッグレベル#デバッグ、開いて、単一のプロセスをデバッグする場合にのみ推奨されます
デフォルトの設定############ ########
デフォルト
グローバル#は、グローバルコンフィギュレーションログの定義として定義されているログログ
モードのhttp#デフォルトモードモード{TCP | HTTP |健康}、TCP 4層は、http層7、健康にはOKを返します。
オプションHTTPLOG#HTTPログ形式のログを使用して、カテゴリを記録
#option dontlognull#健康情報を記録していないログをチェックしてください
試行3つの#チェックノードサーバの障害、到達するために3回連続で失敗し、そのノードが利用できません
#forwardfor #optionは、バックエンドサーバーは、私はHTTPヘッダーからクライアントを取得することができ、IPパラメータが必要な本当のクライアントを設定するために取得する必要がある場合
アクティブチャネルを閉鎖する各#option httpclose#HTTPリクエストの完了後、このモデルのキープアライブ、アナログのみの実装をサポートしていないhaproxy
接続のMAXCONN 4096#の最大数
contimeout 5000#接続タイムアウト
50000#クライアントのタイムアウトclitimeout
srvtimeout 50000#サーバのタイムアウト
#TIMEOUTチェック2000#ハートビートタイムアウト
#TIMEOUT HTTP-キープalive10s#のデフォルトの永続接続タイムアウト
#TIMEOUT HTTP要求10S#デフォルトのHTTPリクエストのタイムアウト
#timeoutqueue 1メートルの#デフォルトのキューのタイムアウト
######## ######## Configuration]ページの統計情報
admin_statsを聞きます
0.0.0.0:1080#フロントエンドを結合して、バックエンドは、カスタム名を必要に応じて、それらの組み合わせ、監視グループ名を提供
7層モデル#httpモードのhttp
オプションHTTPLOG#HTTPログフォーマットを使用して
#log 127.0.0.1 LOCAL0 ERR#エラーログ
接続のMAXCONN 10#のデフォルトの最大数
統計は、30代の#統計ページに自動的にリフレッシュ時間をリフレッシュ
統計URI /統計#統計ページのURL
ページ統計パスワードボックスHaproxy番号の統計レルムCrushlinux \プロンプトテキスト
認証管理統計:管理者#は、ユーザー名とパスワードのモニタリング・ページを設定します。管理者は、あなたが複数のユーザー名を設定することができます
統計は、非表示、バージョン#HAProxy統計ページのバージョン情報を隠します
#stats管理TRUE#設定手動で有効/無効、バックエンドサーバ(haproxy-1.4.9以降)であれば
######## haproxyエラーページを設定#####
403 /home/haproxy/haproxy/errorfiles/403.httpをERRORFILE
500 /home/haproxy/haproxy/errorfiles/500.httpをERRORFILE
502 /home/haproxy/haproxy/errorfiles/502.httpをERRORFILE
503 /home/haproxy/haproxy/errorfiles/503.httpをERRORFILE
504 /home/haproxy/haproxy/errorfiles/504.httpをERRORFILE
遠位構成をフロントエンド######## ##############
bibind *:80#*バインドを使用することをお勧めします:80個の方法、または他の高可用性クラスタを行い、問題がある場合に、他のマシンへのVIPスイッチを訪問することができません。
(ホスト)-i www.abc.com #acl ACLのウェブHDRルール名の後ろに、アクセスしたいドメイン名である-i、あります
以下のスコープのWebサーバに配布するACLのimg HDR(ホスト)-i img.abc.com#ドメイン名が訪問する場合はwww.abc.com。
#あなたがこの範囲をimgserverに配布img.abc.com.cnを訪問すれば。
use_backendウェブサーバであればウェブ
IMG場合use_backendのimgserver
########バックエンドバックエンドの設定##############
バックエンドWebサーバの#webserverスコープ
モードのhttp
バランスラウンドロビン#banlanceのラウンドロビンポーリング、バランスソース値格納されたセッションをサポート静的-RR、leastconn、まず、URIパラメータ
オプションhttpchk /index.htmlがHTTP / 1.0#健康検査、試験紙は、背景に配布した場合、それはもはや配布されません訪問しないindex.htmlを
サーバはweb1 192.168.200.103:80クッキー1つの重量1つのチェック間2000上昇2秋3
サーバーWEB2 192.168.200.104:80クッキー2重量1チェック間2000上昇2秋3
#cookie 1インター1500検出された心拍数を確認し、SERVERIDが1で表します
#rise 2が3に落ち、正しいサーバーが利用可能であると考えられている2回3が考えるサーバーを失敗しているが利用できない、重量が重量を表し、
バックエンドimgserver
モードのhttp
オプションhttpchk /index.php
バランスラウンドロビン
サーバーimg01 192.168.200.105:80チェック間2000年秋3
サーバーimg02 192.168.200.106:80チェック間2000年秋3
######## TCP設定#################
TEST1を聞きます
バインド0.0.0.0:90
モードTCP
#ログカテゴリtcplogオプション、tcplogを使用して
MAXCONN 4086
#log 127.0.0.1のはlocal0デバッグ
サーバS1 192.168.200.107:80重量1
サーバS2 192.168.200.108:80重量1
5.4構成ファイルを変更haproxy
#この設定はhaproxy-必要1.1。28またはhaproxy- 1.2。1 グローバル ログ127.0。0.1 LOCAL0 ログイン127.0を。0.1 LOCAL1通知 ログログホストLOCAL0情報 MAXCONN 4096 #chrootを/ usr / share / haproxy 魅惑99 銀99 デーモン #デバッグ #静か デフォルト ログインする グローバル モードのhttp オプションHTTPLOG #option dontlognull リトライ 3 #redispatch MAXCONN 4096 contimeout 5000 clitimeout 50000 srvtimeout 50000 webcluster聞く0.0。0.0:80 オプションhttpchk GET / index.htmlを バランスラウンドロビン INST1サーバー192.168。200.114:80チェック間2000年秋3 INST1サーバー192.168。200.115:80チェック間2000年秋3 admin_statsを聞きます バインド0.0。0.0:8000 モードのhttp オプションHTTPLOG MAXCONN 100 統計は、30代をリフレッシュ 統計URI / 統計情報 統計レルムCrushlinux \ Haproxy 統計の認証管理者:管理者 統計は、非表示 -versionを
起動スクリプトから5.5準備サービス