ホームページ  >  記事  >  運用・保守  >  nginxとlvsの違い

nginxとlvsの違い

(*-*)浩
(*-*)浩オリジナル
2019-06-04 16:53:104154ブラウズ

lvs も nginx もマルチマシン負荷ソリューションとして利用できますが、それぞれ一長一短があるため、本番環境では実態をよく分析して活用する必要があります。

nginxとlvsの違い

lvs の利点:

1. lvs の動作ロジックが非常にシンプルであるため、強力な負荷耐性があります。ネットワーク層の第4層で動作し、リクエストの振り分けのみに使用されるため、トラフィックが発生しないため、基本的に効率をあまり考える必要はありません。通常、LVS が失敗することはほとんどありませんが、失敗したとしても、通常は他の場所 (メモリ、CPU など) の問題が原因です。

2. 構成可能性、これは通常大きな欠点ですが、大きな利点でもあります。構成可能なオプションがそれほど多くないため、サーバーの追加または削除を除いて、頻繁に触れる必要がなく、コストが大幅に削減されます。人的ミスの可能性。

3. 安定した動作、負荷耐性の強いプロヴィンスなので安定性が高いのは当然ですが、各種LVSは完全なデュアルマシンホットバックアップソリューションを備えているため、イコライザー自体について心配する必要はありませんどのような問題が発生する可能性がありますか? ノードに障害が発生した場合、LVS が自動的にノードを識別するため、システム全体は非常に安定しています。

4. トラフィックはなく、lvs はリクエストを分散するだけであり、トラフィックはそれ自体から発信されないため、回線の迂回を行うために使用できます。トラフィックがなく、イコライザーの IO パフォーマンスは大量のトラフィックの影響を受けません。

5.lvs は基本的にすべてのアプリケーションをサポートできます。グリーン ワークはレイヤー 4 にあるため、http、データベース、チャット ルームなどを含むほぼすべてのアプリケーションの負荷を分散できます。

さらに: lvs はノードの障害を完全には識別できません。たとえば、wlc 割り当てモードでは、クラスター内のノードが VIP で構成されていない場合、クラスター全体が使用できなくなります。 、wrr 割り当て方法が失われます。この問題は現在、さらにテスト中です。したがって、LVS を使用する場合はより注意する必要があります。

nginx と lvs の比較結果:

1.nginx はネットワークの第 7 層で動作するため、http アプリケーション自体の迂回戦略を実装できます。ドメイン名、ディレクトリ構造などについては、それに比べて、lvs にはそのような機能がないため、nginx はこれだけで lvs よりもはるかに多くの状況で使用できますが、nginx のこれらの便利な機能により、nginx は lvs よりも調整可能になります。 LVS の 2 番目の利点から判断すると、触る回数が増えるほど、人的問題が発生する可能性が高くなります。

2.nginx はネットワークへの依存度が低いです。理論的には、ping が成功し、Web ページへのアクセスが正常である限り、nginx に接続できます。nginx は内部ネットワークと外部ネットワークを区別することもできます。内部ネットワークと外部ネットワークの両方を持つノード (バックアップ回線を持つ 1 台のマシンと同等)、LVS はネットワーク環境にさらに依存します。現在、サーバーは同じネットワーク セグメント内にあり、LVS はトラフィックを分散するためにダイレクト モードを使用します。そのため、効果がより確実に保証されます。なお、LVSはビジュアルIPとして使用するにはホスティングプロバイダーから少なくとも1つのIPを申請する必要があり、同じ州のIPをVIPとして使用することはできないようです。優れた LVS 管理者になるには、ネットワーク通信について多くの知識をフォローアップして学ぶ必要がありますが、それはもはや http ほど単純ではありません。

3.nginx はインストールと設定が比較的簡単で、基本的にエラーをログに出力できるため、テストにも非常に便利です。前述したように、LVS はネットワークに大きく依存しているため、LVS のインストール、構成、およびテストには比較的長い時間がかかります。多くの場合、正常に構成できないのは、構成の問題ではなくネットワークの問題が原因です。問題がある場合は、それに応じて解決する必要があり、さらに面倒になります。

4.nginx は高負荷にも耐えることができ、安定していますが、負荷が非常に低く、安定性が劣ります。lvs にはいくつかのレベルがあります: nginx はすべてのトラフィックを処理するため、マシン IO によって制限され、 nginx には既製のデュアル マシン ホット バックアップ ソリューションがないため、単一マシンでの実行は依然として比較的リスクが高く、単一マシンについて何かを言うのは困難です。

5.nginx は、Web ページを処理するサーバーから返されるステータス コードやタイムアウトなどの内部サーバー障害を検出でき、エラーを返すリクエストを別のノードに再送信します。現在、lvs の ldirectd はサーバーの内部状態の監視もサポートしていますが、lvs の原理によりリクエストを再送信することはできません。リクエストの再送信に関しては、たとえば、ユーザーがファイルをアップロードしていて、そのアップロードを処理しているノードがアップロードプロセス中に失敗した場合、nginx は再処理のためにアップロードを別のサーバーに切り替え、lvs は直接切断されます。大きなファイルや重要なファイルをアップロードすると煩わしい場合があります。

6.nginx のリクエストの非同期処理は、ノード サーバーの負荷を軽減するのに役立ちます。Apache を使用して直接外部サービスを提供する場合、ナローバンド リンクが多数ある場合、Apache サーバーは大量のメモリを占有します。 nginx が Apache プロキシとして機能する場合、これらの狭帯域リンクは nginx によってブロックされ、大量のリクエストが Apache に蓄積されなくなり、メモリ使用量が大幅に削減されます。この点では Squid を使用しても同じ効果があり、Squid 自体がキャッシュしないように設定されている場合でも、Apache にとっては大きな助けとなります。 LVS にはこれらの機能がないため、比較できません。

nginx は中間レベルのプロキシとしても使用できます。このレベルでは、nginx には基本的にライバルがいません。nginx を揺るがすことができるのは lighttpd だけです。ただし、lighttpd はまだ nginx の完全な機能を実現できません。構成はそれほど明確ではなく、読みやすいものではありません。さらに、中間レベルのエージェントの IP アドレスも重要であるため、中間レベルのエージェント業界には VIP と LVS を用意することが最も完璧なソリューションです。

特定のアプリケーションを詳細に分析する必要があります。比較的小規模な Web サイト (1 日の pv

Nginx 関連の技術記事の詳細については、Nginx の使用法チュートリアル 列にアクセスして学習してください。

以上がnginxとlvsの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。