Nginx とは何なのかを知りたい場合は、この短くて簡単な記事を読めば、この主題に関する疑問が確実に解消されます。つまり、Nginx は、HTTP ブラウジングに特化してリリースされた、インターネットサーバー専用のオープンソースソフトウェアです。
現在では、HTTP ロード バランサー、リバース プロキシ、さらに POP 3、IMAP、SMTP プロトコルの電子メール プロキシとしても機能します。
同じものが発売されたのは 2004 年 10 月で、このソフトウェアの作成者は Igor Sysoev でした。彼は、C10K として知られる問題を解決するために、2002 年にプロジェクトの作成を開始しました。最大かつ主な課題は、10,000 の同時接続 (同時に) を管理することでした。
現在、さらに多くの接続があり、サーバーがそれをスムーズに管理していることを知ってください。そしてまさにこの単純な理由により、ユーザーに優れた非同期アーキテクチャを提供し、今日最も信頼性の高いサーバーの 1 つとなっています。規模、パフォーマンス、速度の両方の点で。
Nginx はいくつかの非常に高速な接続を簡単にサポートできるため、Netflix、Google、Adobe、WordPress などのトラフィックの多い Web サイトの大部分がすでに Nginx を使用しています。
使い方?
Nginx とは何かを理解したところで、Nginx がどのように機能するかについて触れずにはいられませんが、その話題に入る前に、まずインターネット サーバーが実際にどのように動作するかを知る必要があります。
誰かがソーシャル ネットワーク上であれ、検索エンジンでリサーチを行っているかにかかわらず、Web を閲覧し、必要なものを見つけてリンクをクリックすることを決定するたびに、サーバーはこのように動作します。彼は結局、ある要求をすることになる。
したがって、インターネット上のページの読み込みをリクエストすると、ブラウザは Web サイトのサーバーに接続します。その後、サーバーは要求されたファイルを検索し、それらをブラウザーに配信します。
ご存じない方のために付け加えておきますが、従来の Web サーバーはリクエストごとに個別のスレッドを作成しますが、Nginx はそのようには機能しないことを知っておいてください。
前述したように、優れたパフォーマンスを備えているだけでなく、非同期のイベント指向アーキテクチャも備えています。つまり、類似したスレッドはワーカーと呼ばれるプロセスによって管理されます。つまり、各ワーカー プロセスには、ワーカー接続と呼ばれる小さな単位があります。
したがって、ワーカー接続はワーカー プロセスへのリクエストのみを受け取り、その後マスター プロセスに送信されるため、このユニット全体がすべての加算リクエストを処理する責任を負います。最後に、マスター プロセスは、行われたリクエストの結果を表示します。
これはある意味では単純に見えるかもしれませんが、1 つのワーカー接続で最大 1,024 個のリクエストを処理できることに注意してください。まさにこの理由から、Nginx サーバーは何百万ものリクエストをまったく問題なく処理する能力を完全に備えています。これは、トラフィックが多い Web サイトがこのテクノロジーを使用するもう 1 つの大きな理由でもあります。
Apache 対 Nginx:
事実上すべての Web サーバーの中で、Apache が最も人気があり、事実上 Nginx サーバーの主な敵でもあります。 Apache は 90 年代に誕生し、世界中に膨大な数のユーザーを抱えています。
ただし、オンライン プロジェクトを作成するつもりで、プロジェクトで使用するサーバーのタイプと最適なサーバーについてまだ迷っている場合は、以下の 2 つのサーバーの簡単な比較を確認してください。
パフォーマンスとパフォーマンス:
2 つのサーバーは両方とも同じ速度ですが、Nginx は同時に 1,000 の静的コンテンツの接続を簡単に実行でき、これは Apache の 2 倍の速度です。それでもメモリ使用量ははるかに少なくなります。この場合、Nginx サーバーは確かに最良の選択肢です。
OSの互換性:
互換性は、サーバーを選択する際に考慮すべき詳細の 1 つではありません。この場合、どちらも多くのオペレーティング システムで動作し、UNIX システムをサポートします。
しかし、残念ながら、この点に関しては、Windows 上の Nginx タイプのサーバーのパフォーマンスとパフォーマンスは他のプラットフォームほど良くありません。
サポート:
初心者でも上級ユーザーでも、誰もが例外なく、予期せぬ問題が発生したときにお互いに助け合えるインターネット上の場所やコミュニティを必要としています。
どちらも電子メールによるサポートを提供しており、Stack Overflow のフォーラムもあります。残念ながら、Apache には、Apache Foundation である会社自体からのサポートという点でまだ不十分な点が多く残されています。
結論:
読んでわかるように、Ngnix はリバース プロキシ、ロード バランサー、メール プロキシとしても機能するインターネット サーバーです。すべてのソフトウェアの構造はすべて非同期で、すべてイベント駆動型です。これにより、多数の同時リクエストが可能になります。
Nginx タイプのサーバーはスケーラビリティが高いことは言うまでもありません。つまり、トラフィック量の増加に応じて作業も増大します。
Apache と Ngnix は確かに今日最高の Web サーバーです。あとは、オンライン プロジェクトでどちらを使用するかを選択するだけです。あなたの選択は成功しましたか?