ここ数年、飛躍的に注目を集めているのがNginxです。Nginxは軽量でありながら、大量アクセスを捌くことを得意としているWebサーバーです。リバースプロキシやロードバランシングなどの機能も備えています。
Nginxとは?
nginx
Nginx(エンジンエックス)とは、ここ数年で一気にシェアを増やしているWebサーバーです。2002年にロシアのIgorSysoev氏によって開発されたのち、現在ではNginx,Inc.によって管理されています。BSDライセンスで提供されていて、オープンソース版と商用向けのNginxPlusがあります。
Webサーバーと言えばApacheが有名ですが、Nginxはそれに迫る勢いです。どれくらい人気があるのか、Googleトレンドで過去3年間のデータを見てみましょう。
青線がApacheで、赤線がNginxの検索トレンドです。やはりApacheは人気ですね。ただし、Apacheが減少傾向にある一方で、Nginxは増加傾向にあります。NginxがまさにApacheに届かんとする勢いであることがわかりますね。なお上の画像は日本国内の検索トレンドなのですが、海外の検索トレンドも同じような傾向です。
実際にNginxを採用している事例も多く、FacebookやWikipedia、クックパッドなどの大手企業が利用しています。
Nginxが台頭してきた理由
Nginxがここまで注目を集めているのはなぜなのでしょうか?最も大きな理由は、Nginxが大量アクセスの処理が得意であることがあります。
Nginxはそもそも、大量のアクセスがあるWebサイトのHTTPサーバーとして開発されました。具体的には、1日に5億ものリクエストを処理するWebサイトに使われていたとされています。Apacheでは1つのリクエストにスレッドを割り当てるので、こういった大量のリクエストを捌くのは苦手です。Nginxが台頭してきたのも、こういった理由があるのです。
Nginxには、他にも魅力的な特徴があります。ここからは、Nginxの代表的な特徴についてまとめていきましょう。
高速・軽量なWebサーバー
記事の前半でご紹介したように、Nginxはもともと大量のリクエストを処理することを前提に開発されたWebサーバーです。プロセス駆動型のApacheとは異なり、イベント駆動型の設計方式が採用されています。メモリが節約でき、結果として大量のリクエストにも耐えることができる高速・軽量なWebサーバーになっているのです。
静的なコンテンツに向いている
Nginxは静的なコンテンツに向いているWebサーバーです。HTMLや画像などの静的コンテンツを配置して、キャッシュしておくことが可能です。ApacheなどのWebサーバーは動的なコンテンツを得意としているので、使い分けが必要と言えます。
リバースプロキシ
Nginxはリバースプロキシとして機能します。Nginxでリクエストを受け取ることで、バックエンドのサーバーの負荷を減らしたりすることができます。
ロードバランシング
Nginxはロードバランサーとしても使うことで、バックエンドのサーバーに処理を振り分けるのです。各サーバーの負担を効果的に分散することが可能です。
Nginxの基本や、代表的な特徴についてまとめました。Nginxは大手のサイトだけでなく、規模の小さなサイトなど資源が限られているサイトにもおすすめです。