Webサーバーの主な機能は、トラフィックに圧倒されたり、読み込み時間を遅くしたりすることなく、サイトのコンテンツを可能な限り効率的に提供することです。これについて考える良い方法は、水圧のようなものです。配管システムから家に圧力がかかりすぎると、何も正しく機能しません。同様に、Webサーバー自体がパイプを介してデータを送り返そうとして懸命に働いているときに、十分なリソースが利用できない場合、事態は非常に速く厄介になり始めます。
現在使用されている最も人気のある3つのタイプのサーバーには、Mongrels(Rubyで記述)、Apache(主にC / C ++で記述)、Nginx(完全にCで記述)があります。確認してみましょう!
Webサーバーは、サーバーのファイルシステムに保存されているドキュメントやファイルに対するクライアント(Webブラウザーなど)からの要求に応答するコンピューターシステムの一部です。この用語は、これを可能にするソフトウェアだけを指すこともあり、より一般的には、アプリケーションが実行されるあらゆる種類のコンピューター上のあらゆる種類のサーバーを指すこともあります。
Webサーバーの主な機能は、トラフィックに圧倒されたり、読み込み時間を遅くしたりすることなく、サイトのコンテンツを可能な限り効率的に提供することです。これについて考える良い方法は、水圧のようなものです。配管システムから家に圧力がかかりすぎると、何も正しく機能しません。同様に、Webサーバー自体がパイプを介してデータを送り返そうとして懸命に働いているときに、十分なリソースが利用できない場合、事態は非常に速く厄介になり始めます。
現在使用されている最も人気のある3種類のサーバーには、Mongrels(Rubyで記述)、Apache(主にC / C ++で記述)、Nginx(完全にCで記述)があります。
それらはすべてインターネットの初期にまでさかのぼる長い歴史があり、時間の経過とともに信頼性が証明されています.3つのサーバーはすべてオープンソースであるため、コードを自分で変更したり、無料で使用したりすることもできます。これは、ソフトウェアで見つかったバグが、作業を共有する開発者のコミュニティによって修正されることも意味します。これらはすべてクロスプラットフォームです。つまり、複数のオペレーティングシステム(WindowsやLinuxなど)で実行されます。
MongrelはRuby用のWebサーバーです。高速で信頼性が高く、スケーラブルです。 Rubyは非常に高速な言語ではないため、MongrelはCPUを集中的に使用するWebアプリケーションにはあまり適していません。
Mongrelは、リクエストが接続ごとに1つのスレッドによって処理される単一プロセスモデルを実装します(そうするように構成した場合はそれ以下)。これにより、すべての要求の後に制御をユーザーに戻す前にI / O操作を待つ必要がないため、応答時間が短縮されます。
Apacheは、世界で最も人気のあるWebサーバーであり、正当な理由があります。これは無料のオープンソースでクロスプラットフォームです(つまり、さまざまなオペレーティングシステムで実行できます)。 ApacheもC++で記述されているため、非常に高速です。
Apacheには、その背後に非常に大きなコミュニティがあり、デフォルトでネイティブにサポートされている機能を超えて機能を拡張できる多くのモジュールが利用可能です。プラグインシステムを使用すると、追加のセキュリティモジュールから、memcachedやredisキャッシングサーバーなどの複雑なアプリケーションまで、あらゆるものを追加できます。
Apacheの唯一の欠点は、Webサイトの動作を完全に制御する場合に技術的な知識が必要になることですが、これを取得すると、このソフトウェアで達成できることにはほとんど制限がありません。
Nginxは、高い同時実行性を処理するように設計された人気のあるオープンソースWebサーバーであり、イベント駆動型アーキテクチャも備えています。
Nginxは、リクエストの処理に非同期I / Oを使用します。これにより、他のWebサーバーよりも高いパフォーマンスを実現できます。これは、Nginxがデータをクライアントに送り返すためにアップストリームサーバーからの応答を待つ必要がないためです。代わりに、Nginxは複数の実行スレッド(接続ごとに1つ)を使用してデータを送信します。また、モジュール式の設計であるため、すべてが必要ない場合は、サーバーにアプリケーションスタックの一部のみを含めることができます。最も一般的な機能セットは次のとおりです。
-Webサーバー(HTTP / 1.1)
-リバースプロキシ/ロードバランサー(TCP)
要点:Webサイトがある場合は、Webサーバーが必要です。 Apache、Mongrel、Nginxのいずれかを決定するときは、これらの長所と短所を考慮してください
Webサイトがある場合は、Webサーバーが必要です。
それぞれの長所と短所は何ですか?
--Mongrelは、成長が見込まれない小さなサイトに適しています。
-Nginxは、多数の同時ユーザーがいる大規模なサイトに適しています。
--Apacheは、新しいプロセスをオンデマンドで生成し、既存のプロセスと並行して処理できるため、トラフィックの急増を適切に処理します。
彼らの共通点は何がありますか?それらはすべてスレッドを使用して要求を処理します(1つのプロセスだけですべてを実行するのではありません)。これは、複数のリクエストを同じプロセスで同時に処理できることを意味します。 1つのリクエストに時間がかかる場合、他のリクエストは順番を待つ必要はありません。
したがって、Webサーバーを検討しています。良いニュースは、3つの優れたオプションから選択できることです。このブログ投稿で、それぞれの長所と短所を確認しました。このブログ投稿を読んだ後に他に質問がある場合は、下のコメントセクションでお知らせいただくか、お問い合わせフォームからお問い合わせください。