Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> イカ、nginx、lighttpdリバースプロキシの違い

イカ、nginx、lighttpdリバースプロキシの違い

  
 

リバースプロキシは、送信から2つのタイプに分けられます。
1:同期モード(apache-mod_proxyとsquid)
2:非同期モード(lighttpdとnginx)
nginxの序論では、非同期転送モードが言及されており、バックエンド接続の数とプレッシャーを減らすことができます。
以下は、従来のエージェント(apache /squid)の同期転送とlighttpd、nginxの非同期転送の違いを説明したものです。
squid、nginx、lighttpdのリバースプロキシ
同期転送:ブラウザがリクエストを開始するその後、リクエストはすぐにバックグラウンドに転送されるため、ブラウザとバックグラウンドの間にチャネルが確立されます。このチャネルは、要求が完了するまで要求が開始されるまで常に存在します。非同期転送:ブラウザはリクエストを開始し、リクエストはすぐにはバックグラウンドに行きませんが、リクエストデータ(ヘッダ)は最初にnginxで受信され、次にnginxはリクエストをバックエンドに送信し、データは処理後にバックエンドに返されます。 nginxでは、nginxはデータストリームをブラウザに送信しますこれは、バックエンドデータが完全に受信された後にブラウザに送信されるlighttpdとは少し異なります。
概要:apacheとsquidを逆にするとバックエンドWebの負担が増えます。なぜなら、各ユーザーのリクエストはプロキシ上のバックエンドサーバーとの長期的なリンクを持ち、データが取得されるまで接続が消えないからです。 WAN間の速度は非常に速いのですが、WANの速度はLANの速度とは異なるため、ユーザーのWAN接続がこの時間を決定します。 lighttpdとnginxのライトモードは、ユーザーが必要とするデータの大きさに関係なく、最初に受信されてからバックエンドに接続されるため、プロキシとバックエンド間の接続時間は非常に短くなります。テンMのことも数秒以内です。バックエンドはそれほど多くの接続を維持する必要はありません。 lighttpdもnginxとは非同期で、最初にクライアントのブラウザに送信され、データ収集中にnginxはユーザーのブラウザに転送されます。


そして、最後にそれが良い何であると?
1.ユーザーのネットワーク速度が遅いためにユーザーがファイルのアップロード操作を実行し、サーバーにファイルを転送するのに30分かかるとします。 Squidの同期エージェントは、ユーザーがアップロードを開始した後にバックグラウンドとの接続を確立し、30分後にファイルのアップロードが終了しますバックグラウンドサーバー接続は30分の間残り、nginx非同期プロキシは最初にnginxでこのファイルを受け取ります。バックグラウンドサーバーは30分以内にこのリクエストへの接続を開かず、30分後にユーザーはアップロードし、nginxはバックグラウンドにアップロードされたコンテンツを送信します。非常に豊富なので、バックグラウンドにリクエストを送信するのに1秒しかかからなかったので、バックグラウンドサーバー接続は1秒間とどまっていることがわかります。同期転送はバックグラウンドサーバーで30分かかり、非同期転送は1秒しかかかりませんでした。これは最適化が非常に大きいことを示しています。
2.上記の例では、さまざまな理由でバックグラウンドサーバーが再起動されると、アップロードファイルが自然に中断され、ユーザーにとって非常に煩わしいものになっています。体験してください。 nginxプロキシを使用した後は、バックグラウンドサーバーの再起動によるユーザーのアップロードへの影響が最小限に抑えられ、nginxは非常に安定しているため頻繁に再起動する必要はありません。
3.非同期転送はロードバランサーをより安全にすることができます。他のイコライザー(lvs /haproxy /apacheなど)では、それぞれのリクエストは1回のチャンスしかありませんが、ユーザーがリクエストを開始し、そのリクエストが割り当てられているバックエンドサーバーがハングすると、そのリクエストは失敗します。また、nginxは非同期であるため、この要求は次のバックグラウンドに送り返すことができ、次のバックグラウンドは通常のデータを返すので、要求は成功する可能性があります。 nginxプロキシを使用するだけでなく、負荷分散も使用する場合は、ユーザーアップロードファイルの例を使用します。nginxはアップロードファイルをバックグラウンドの1つに送信しますが、nginxがエラーを受け取った後にこのサーバーを突然再起動します。ファイルは別のバックグラウンドに送信されるので、ユーザーはそれをアップロードするためにさらに30分を費やす必要はありません。
4.ユーザーが10GBのファイルをアップロードし、バックグラウンドサーバーがこれを考慮に入れていない場合、バックグラウンドサーバーはクラッシュしません。 nginxを使えば、nginx上でこれらのことをブロックしたり、nginxのアップロードファイルサイズ制限の機能を制限したり、nginxのパフォーマンスを非常に安全にしたりすることができます。
非同期転送は問題を引き起こします:
バックグラウンドサーバーはアップロードの進行状況を提供する機能を持っていますnginxエージェントを使用している場合、進行状況を確認することはできませんこれはnginxのサードパーティモジュールで実装する必要があります。

Copyright © Windowsの知識 All Rights Reserved