「engine-ex」と発音されるNGINXは、2004年10月に正式にリリースされました。ソフトウェアの作成者であるIgor Sysoevは、C10k問題に答える試みとして2002年にプロジェクトを開始しました。 C10kは、同時に1万の接続を管理するという課題です。
今日、Webサーバーが処理しなければならない接続はさらに増えています。そのため、NGINXはイベント駆動型の非同期アーキテクチャを提供します。この機能により、NGINXは速度とスケーラビリティに関して最も信頼性の高いサーバーの1つになります。
多くの接続と速度を処理する優れた機能により、トラフィックの多いWebサイトの多くがNGINXのサービスを使用しています。これらのオンラインの巨人には、Google、Netflix、Adobe、Cloudflare、WordPress.comなどがあります。
NGINXはどのように機能しますか?
NGINXについて詳しく知る前に、Webサーバーがどのように機能するかを見てみましょう。誰かがWebページを開くように要求すると、ブラウザはそのWebサイトのサーバーに接続します。次に、サーバーはページに対して要求されたファイルを探し、それをブラウザーに送信します。これは最も単純な種類のリクエストにすぎません。
上記の例もシングルスレッドと見なされます。従来のWebサーバーは、リクエストごとに1つのスレッドを作成しますが、NGINXはそのようには機能しません。前に述べたように、NGINXは非同期のイベント駆動型アーキテクチャで動作します。これは、同様のスレッドが1つのワーカープロセスの下で管理され、各ワーカープロセスにワーカー接続と呼ばれる小さなユニットが含まれていることを意味します。このユニット全体が、リクエストスレッドの処理を担当します。ワーカー接続は、リクエストをワーカープロセスに配信し、ワーカープロセスはそれをマスタープロセスにも送信します。最後に、マスタープロセスはそれらのリクエストの結果を提供します。
簡単に聞こえるかもしれませんが、1つのワーカー接続で最大1024の同様のリクエストを処理できます。そのため、NGINXは何千ものリクエストを問題なく処理できます。 NGINXがeコマース、検索エンジン、クラウドストレージなどの忙しいウェブサイトで優れたものになった理由でもあります。
NGINX vs Apache
人気のあるWebサーバーの中で、ApacheはNGINXの主要なライバルの1つです。 90年代から存在しており、大規模なユーザーコミュニティもあります。どのWebサーバーがニーズに最適であるかについて知りたい場合は、NGINXとApacheのこの簡潔で有益な比較をご覧ください。
- OSサポート
互換性は、ソフトウェアを選択するときに考慮すべき小さな詳細の1つです。 NGINXとApacheはどちらも、Unixシステムをサポートする多くのオペレーティングシステムで実行できます。残念ながら、WindowsでのNGINXのパフォーマンスは、他のプラットフォームほど優れていません。 - ユーザーサポート
初めてのユーザーから専門家まで、ユーザーは常に問題に直面したときに役立つ優れたコミュニティを必要としています。 NGINXとApacheの両方にメールサポートとStackOverflowフォーラムがありますが、Apacheにはその会社であるApacheFoundationからのサポートがありません。 - パフォーマンス
NGINXは、静的コンテンツの1000接続をApacheの2倍の速度で同時に実行でき、使用するメモリも少し少なくなります。ただし、動的コンテンツの実行でのパフォーマンスを比較すると、どちらも同じ速度です。 NGINXは、より静的なWebサイトを持っている人にとってより良い選択です。
NGINXについてさらに読む
- NGINXを使用してリダイレクトを作成する方法
- UbuntuにNGINXを使用してWordPressをインストールする方法
NGINXは、電子メールプロキシ、リバースプロキシ、およびロードバランサーとしても機能するWebサーバーです。ソフトウェアの構造は非同期でイベント駆動型です。これにより、多数のリクエストを同時に処理できます。 NGINXも非常にスケーラブルです。つまり、NGINXのサービスはクライアントのトラフィックとともに成長します。 NGINXとApacheは、確かに市場で最高のWebサーバーの2つです。