HAProxy ロードバランサの構成とアルゴリズム

HAProxy ロードバランサの構成とアルゴリズム

[51CTO.com 限定特集] HAProxyの公式ドキュメントには多くの設定内容が記載されていますが、実際のところ、私たちのオンライン環境では、これらの項目だけで十分です。これが、HAProxy がシンプルだと言われる理由です。対応する HAProxy の設定ファイルは次のとおりです。

  1. グローバル
  2. ログ 127.0.0.1 local0
  3. マックスコン 4096
  4. chroot /usr/local/haproxy
  5. uid 99
  6. ジッド99
  7. デーモン
  8. nbproc 1
  9. pidファイル /usr/local/haproxy/logs/haproxy.pid
  10. デバッグ
  11.  
  12. デフォルト
  13. ログ 127.0.0.1 ローカル3
  14. モード http
  15. オプション httplog
  16. オプション httpclose
  17. オプション dontlognull
  18. オプション forwardfor
  19. オプション再ディスパッチ
  20. 再試行 2
  21. マックスコン 2000
  22. バランスソース
  23. 統計 URI /haproxy-stats
  24. タイムアウト 5000
  25. クリタイムアウト 50000
  26. srvタイムアウト 50000
  27.  
  28. 1paituan_proxy 203.93.236.149:80 を聞く
  29. オプション httpchk HEAD /index.jsp HTTP/1.0
  30. サーバー web1 203.93.236.147:80 クッキー app1inst1 チェック インター 2000 上昇 2 下降 1
  31. サーバー web2 203.93.236.146:80 クッキー app1inst2 チェック インター 2000 上昇 2 下降 1

次のようにログ記録サポートを追加します。

  1. #vim /etc/syslog.conf
  2.  
  3. に追加:
  4.  
  5. ローカル3.* /var/log/haproxy.log
  6. ローカル0.* /var/log/haproxy.log
  7.  
  8. #vim /etc/sysconfig/syslog
  9.  
  10. 改訂:
  11.  
  12. SYSLOGD_OPTIONS = "-r -m 0"  
  13. サービス syslog の再起動

ここで注意すべき点がいくつかあります:

1. HAProyx は、LVS 永続性や Nginx ip_hash と同じバランス ソース メカニズムを使用して、クライアントが常にバックエンドの実際の Web サーバーにアクセスできるようにします。

2. 203.93.236.149 は、Keepalived によって私の Web サイト用に生成された VIP アドレスです。

3. option httpchk HEAD /index.jsp HTTP/1.0 は Web ページ用です。HAProxy が Web のルート ディレクトリに index.jsp が存在しないことを検出できない場合、503 エラーが生成されます。

HAProxy+keepalived/Heartbeat は、当初ウェブサイトに LVS+Keepalived 高可用性アーキテクチャを採用していたため、私のウェブサイトの 2 番目のソリューションです。その後、何人かの友人から、携帯電話でテストしたところ、転送が非常に遅く、開けないこともあると言われました。一部のコンピューターでも同様でした。次のことを試してみたところ、確かにそうでした。そこで、Nginx+Keepalived を使用したところ、転送速度が確かにはるかに速くなり、携帯電話でそのような問題は発生しませんでした。Nginx+Keepalived は東莞の顧客に正常に導入されたため、後でこのウェブサイトを HAProyx+Keepalived アーキテクチャに設計することも検討しました。

HAProxy アルゴリズムは 8 つあります。

1. ラウンドロビン。これは単純なラウンドロビンを意味します。基本的にすべての負荷分散サービスで利用できるため、これについてはあまり説明しません。

2. static-rr、重みに基づいて注意が推奨されることを示します。

3. leastconn は、接続数が最も少ないものが最初に処理されることを意味します。注意することをお勧めします。

4. ソース: リクエストのソース IP に基づいて注意が必要であることを示します。

5. uri、リクエストに応じたURIを示す。

6. url_param、リクエスト内のURLパラメータのバランスを示す 'url_param'にはURLパラメータ名が必要です

7. hdr(name)は、HTTPリクエストヘッダーに従って各HTTPリクエストをロックすることを意味します。

8. rdp-cookie(name) は、cookie(name) に基づいて各 TCP 要求をロックしてハッシュすることを意味します。

実際、これらのアルゴリズムにはそれぞれ独自の用途があります。より頻繁に使用されるのは roundrobin、source、lestconn なので、これらに重点を置くことができます。ここで HAProxy+Keepalived を使用したとき、HAProxy プロセス レベルでの高 HA を考慮していませんでした。まず、Taobao はこれをロード バランサーとしても使用しているため、その安定性は間違いなく疑う余地がありません。次に、テスト中に、確かに非常に安定していることがわかりました。HAProxy プロセスを強制終了するには、kill -9 を使用する必要があるため、それに時間を無駄にしませんでした。テスト中、デュアル アクティブ アーキテクチャに HAProxy+Keepalived を使用することを検討しましたが、後でメンテナンスがあまり簡単ではないことがわかったため、断念しました。

皆さんに思い出していただきたいのは、HAProxy は仮想ホストをサポートしているということです。友人の中には、サポートしていないと言う人もいます。これは実際には非常に簡単に確認できます。1+1 アーキテクチャを作成し、その背後に Nginx または Aapceh Web サーバーを配置して、このステートメントを確認できます。さらに、Nginx の正規表現と比較した後、HAProxy の正規表現処理能力は Nginx ほど強力でも柔軟でもないこともわかりました。ここで妥協案を採用することもできます。背後の Web サーバーとして Nginx を使用します。jsp アプリケーションの場合は、Nginx+tomat を使用できます。PHP を実行している場合は、Nginx+FastCGI (PHP5) を使用できます。

Yu Hongchun ( Fuqin Zhujiu ) は、『Building High-Performance Linux Servers』の著者であり、Yipai.com のシステム アーキテクト兼シニア プロジェクト管理エンジニアであり、ChinaUnix クラスターと高可用性バージョンのモデレーターです。

[51CTO.comの独占特集。無断転載は禁止です!]協力メディアに転載する際は、記事の出典と出典を明記してください。 】

<<:  XML暗号化アルゴリズムが解読され、W3C標準が改訂される

>>:  過去10年間のGoogleアルゴリズムの変化

ブログ    

推薦する

ML モデルに魂を吹き込む: MVP に基づく超シンプルなデプロイメント ソリューション

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

この AI ツールは最近、大騒ぎになっています!試してみますか?

Stable Diffusionをプレイしたことがある人は多いと思います。この製品はmjdjour...

...

ウォールストリートジャーナル:大手テクノロジー企業は依然として生成AIサービスで利益を上げようとしている

昨年末の ChatGPT の登場により、生成 AI の流行が巻き起こり、現在ではほぼすべての主要ソフ...

スマートホームテクノロジーを通じて AI があなたの家を乗っ取るでしょうか?

スマートホーム テクノロジーは、家電製品、ホーム セキュリティ、照明、エンターテイメントを強化します...

アントチェーン、AI + ブロックチェーン技術でオリジナル作品を共同保護するデジタル著作権サービスプラットフォームの開設を発表

10月22日、アントチェーンはデジタル著作権サービスプラットフォームを社会全体に開放することを正式に...

ついに! SM2 国家暗号アルゴリズムが Linux カーネル コミュニティに承認されました

背景Guomi は国家商用暗号化の略称です。アルゴリズム標準は国家暗号管理局によって策定され、多数の...

AI教育はライト兄弟の飛行実験のようなものです。夢は実現しますが、時間がかかるだけです。

ジェニファー・ターナーの代数学の授業はかつてとても眠くて、多くの生徒が眠気を催していた。現在、教育を...

マスク氏:ロボットが雇用を奪い、ユニバーサル・ベーシック・インカムが必須に

億万長者のイーロン・マスク氏は最近、一連のツイートで、ロボットが人間の仕事を奪うなら、政府による普遍...

ネイチャー誌は「同じ原稿の複数投稿」を認めるべき時が来たという記事を掲載した。

「私たちの論文を溜め込むのはやめてください」ネイチャー誌のコラムに学者の投稿が掲載される。記事は、...

...

この記事では、さまざまな教師なしクラスタリングアルゴリズムのPython実装について簡単に説明します。

教師なし学習は、データ内のパターンを見つけるために使用される機械学習技術の一種です。教師なし学習アル...

フェデレーテッドラーニングも安全ではないのでしょうか? Nvidiaの研究は「プライバシーフリー」データを使用して元の画像を直接再構築します

フェデレーテッド ラーニングは、データがローカルの場所から出ないようにするプライバシー保護戦略により...

人工知能システム:無制限の核融合反応を現実のものに

近年、研究者らはトカマクの停止や損傷の原因となる核分裂反応を研究している。核分裂反応を予測・制御でき...