Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> 1000万の同時HAproxy平衡負荷システム導入

1000万の同時HAproxy平衡負荷システム導入

  

HAProxyはTCPとHTTPアプリケーションに基づいて高可用性、負荷分散とプロキシを提供し、仮想ホストをサポートします、それは無料で、速くそして信頼できるソリューションです。公式データによると、その上限は10Gの同時実行性をサポートしています。

HAProxyは、通常セッションの持続性や7層の処理を必要とする高負荷のWebサイトに特に役立ちます。 HAProxyは現在のハードウェア上で動作し、何万もの同時接続をサポートできます。また、その動作モードにより、Webサーバーがネットワークにさらされることを防ぎながら、現在のアーキテクチャに簡単に統合できます。


ログイン


層7スイッチング、すなわち、ネットワーク層から支持されている4は、すべてのTCPプロトコルをカバーします。つまり、HaproxyはMysqlのバランスの取れた負荷もサポートします。 。

Webリバースロードをプロキシリバースプロキシモードで実装できる場合は、そのような製品が多数あります。 Nginx、ApacheProxy、lighttpd、Cherokeなどを含みます。

しかし、明確に言うと、HaproxyはHttpサーバーではありません。リバースプロキシイコライゼーション負荷のある上記の製品はすべてWebサーバーです。簡単に言えば、静的(html、jpg、gif ..)または動的(php、cgi ..)ファイル転送と処理を提供できます。 Haproxyは、負荷を分散するためのアプリケーションプロキシです。それ自体ではhttpサービスを提供しません。

が、その構成が簡単で、非常に優れたサーバーのヘルスチェックだけでなく、特別な監視システムのステータスページがあり、そのエージェントのバックエンドサーバーに障害が発生した場合、HAProxyは、自動的にサーバの障害を取り除きますサーバーは回復後に自動的に追加されます。バージョン1.3以降、フロントエンド、バックエンド、フロントエンドは、HTTPリクエストヘッダの内容に基づいてルールを一致させるために導入され、そしてリクエストは関連するバックエンドに向けられます。

さらに、バージョン1.3は、次の新機能をサポートする開発中のバージョンです。

Content Exchange:リクエストの一部に基づいて、リクエストなどの一連のサーバーを選択できます。 URI、ホストヘッダー、クッキー、その他何でももちろん、静的に分離されたサイトにはこの機能に対するニーズがもっとあります。

完全に透過的なプロキシ:バックエンドサーバーへの接続にはクライアントのIPアドレスやその他のアドレスを使用できますこの機能はcctproxyパッチがLinux 2.4 /2.6カーネルに適用された後にのみ使用できます。特別なサーバーがサーバーのアドレスを変更せずにトラフィックの一部を処理することは可能です。

ツリーベースの高速スケジューラ:1.2.16を超えるバージョンでは、何万ものフルスピード接続をサポートするためにすべてのタイムアウトを同じ値に設定する必要があります。この機能は1.2.17に移植されました。

カーネルTCPスプライシング:カーネルからユーザーへ、そしてユーザーからカーネルへのデータコピーを回避し、CPU使用率を削減しながらスループットを向上Haproxy 1.3は、Linux L7SWをサポートし、一般的なハードウェアでのGbpsスループットを実現します。需要

接続拒否:接続をオープンに維持するためのオーバーヘッドは非常に小さいため、攻撃ボットを制限する必要がある場合があります。これは、接続をオープンに制限し、害を制限することを意味します。これは、小規模なDDoS攻撃に陥っているサイト用に開発されたもので、多くのサイトを救いました。

微妙な見出し:ヘッダーベースのルールを簡単に記述し、URIの特定の部分を処理します。

高速で信頼性の高いヘッド処理:RFC2616に準拠した完全性の完全性チェックを使用することで、すべての一般的な要求を分析して索引付けするのに2ミリ秒もかかりません。

モジュール設計:より多くの人がこのプロジェクトに参加できるようにする、デバッグも非常に簡単です。ポーラーが分離され、開発がずっと簡単になりました。HTTPがTCPから分離されました。レイヤのプロパティは非常にシンプルになります他のサブシステムも非常に素早くモジュール化されます。

投機的I /O処理:準備が整う前にソケットからデータを読み込もうとします。ポーラーは、どれが準備ができていないのかを推測するだけで、推測しようと試みます。そして成功すれば、いくつかの高価なシステムコールを保存することができます。これらのシステムコールは失敗すると呼び出されます。 Linux epoll()の既知の用途は、少なくとも10%の純増です。

ACL:アクションの実行条件として任意の規則の任意の組み合わせを使用してください。

TCPプロトコルチェック:ACLを組み合わせてリクエストの一部をチェックしてから転送します。これにより、ブラインド転送の代わりにプロトコル検証を実行できます。たとえば、SSLを許可し、SSHを拒否します。

その他の負荷分散アルゴリズム:動的ラウンドロビン、加重ソースハッシュ、加重URLハッシュ、および加重パラメータハッシュすでに実装されています。 Weighted Measured Response Timeなどの他のアルゴリズムもまもなく実装される予定です。

Copyright © Windowsの知識 All Rights Reserved