いま話題のWebサーバー「Nginx」とは?

nginx

Nginxをご存じでしょうか?Webサーバーというと、ApacheやMicrosoft IISなどのサーバーが有名ですが、Nginxはそれに迫る勢いでシェアを伸ばしている、いま注目のWebサーバーなんです。本記事ではまだNginxのことをよくご存じない方に向けて、基礎知識や特徴についてまとめています。

Nginxの基礎知識

Nginx

http://nginx.org/en/

いま注目のWebサーバーNginx

Nginxとは?

Nginx(エンジンエックス)は、2002年にロシアで開発されたWebサーバーです。Apacheと比較して、より高速に動作することで知られています。後述するようにとても機能が豊富なNginxですが、オープンソースのため無料で利用することが可能です。

BSDライセンスでリリースされていて、LinuxやMacなどのUNIX系OSとWindowsに対応しています。現在はNginx, Inc.が開発元となっています。オープンソース版と商用向けのNginx Plusがリリースされていて、オープンソース版はMainline、Stable、Legacyの3つのバージョンが用意されています。

Nginxが生まれた背景

Webサーバーとしては以前からApacheが大きなシェアを持っていました。Apacheはオープンソースですし、汎用性もあります。大小問わずさまざまなサービスに利用されてきたのですが、大量なアクセスに対処しきれないという欠点もはらんでいました。この欠点に対応すべく登場したのが、Nginxなのです。

Nginxはもともと、C10K問題に対応するために生まれたWebサーバーです。C10K問題とは、接続してくるクライアントが膨大だとサーバー側がパンクしてしまうことを指しています。日本語では、「クライアント1万台問題」と呼ばれていますね。NginxはApacheでは対処しづらい、こういった問題に対処するために設計されました。具体的には後述しますが、並行処理やメモリの消費を抑えることで高速に動作してくれるのです。

Nginxの活用事例

Nginxはさまざまなサービスに利用されていますが、特に規模の大きなサイトで効果を発揮します。FacebookやWikipedia、クックパッドなどの大手サイトで採用されていることからも、その有用性がわかりますね。もちろん、規模が大きくなくても十分に利用価値があります。資源が限られている場合など、Nginxは有力な選択肢の一つになるでしょう。

Nginxの特徴と主な機能

Nginxが注目を集めている理由について探っていきましょう。Apacheと比較しながら、Nginxの特徴や主な機能について順にご紹介していきます。

高速に動作する

Nginxは高速で動作するWebサーバーで、同時に大量のリクエストをさばくことができます。Apacheなどのプロセス駆動型のWebサーバーとはそもそも設計思想が異なっていて、Nginxではイベント駆動型の処理方式を採用しています。これが、Nginxが高速に動作する大きな理由。プロセスが削減できるので、膨大なリクエストにも耐えて動作してくれるのです。

静的コンテンツの扱いが得意

Apacheと比較すると、Nginxは静的コンテンツ(HTTPや画像など)の配信において優れています。逆に動的なコンテンツの配信はあまり得意ではないので、別でアプリケーションサーバーを立てるなどの対応が必要です。FastCGIやuWSGIなど、Webアプリケーション向けのインターフェースも備わっています。

リバースプロキシとして使える

Nginxには、リバースプロキシとしての機能も備わっています。Nginxが静的コンテンツをキャッシュしておくことで、バックエンドのWebサーバーやアプリケーションサーバーの負荷を減らすことにつながるのです。ロードバランサーとしても機能するので、大量アクセスの負荷分散をさせることも可能です。

柔軟にモジュールが利用できる

Nginxは多機能なWebサーバーなのですが、それらの機能がモジュール化されていいます。必要なモジュールだけを組み込むことで、メモリなどの資源の節約につながりますね。もちろん、独自に開発したモジュールを追加して使用することも可能です。

無料で使える

NginxはオープンソースのWebサーバーなので、無料で利用することができます。Nginxはスタートアップなどのサービスでも頻繁にとり入れられていますが、無料で使えることもその後押しになっているのでしょう。Nginx社のサポートを受けることも可能ですが、その場合は有料会員になることが必要になるので注意しましょう。

ApacheとNginx、どちらを使うべき?

ApacheとNginxの比較をしてきましたが、どちらもシェアが高く信頼できるWebサーバーであることは間違いありません。それでは結局のところ、どちらを使うべきなのでしょうか。

負荷が高い場合や静的ページに同時アクセスされることが多い場合はNginxを使うと良いでしょう。また、負荷が高くなく同時アクセスが少ない場合や早期セットアップが必要な場合はApacheが良いでしょう。

Nginxは処理が早く、消費メモリが少ないという良い事ずくめですが、1つの処理が長すぎるとシステムコールキューにリクエストがたまってしまいパフォーマンスが低下してしまうので、前述のように動的処理や動画コンテンツの配信やデータベース処理等の重い処理をする場合にはApcheが良いとされています。

あとがき

NginxはApacheに引けを取らない、とてもパワフルなWebサーバーです。日本語での情報も増えてきましたし、開発にかかる工数も少ない部類に入ります。インストールも難しくないので、気になった方はまずはダウンロードして使ってみてはいかがでしょうか?

中西洋平

中西洋平Web屋さん兼IT記事ライター

投稿者プロフィール

ピンとくるウェブサービスやガジェットを探すのが趣味です。どうぞよろしく。

この著者の最新の記事

関連記事

Follow me on

Facebookの投稿

弊社を手伝ってくれている Yuya Sato に、
オフィス制作時の360度タイムラプス撮影したものを編集してアップしてもらいました!

何にもないところからオフィスができていくのが面白いです!!!
www.youtube.com/watch?v=YFRvF_qot3o
... See MoreSee Less

View on Facebook

2016年7月、オフィス移転しまして、オフィスを手作りしました! ... See MoreSee Less

View on Facebook

Luxyでは毎月1回、Luxyメンバーで大江戸温泉ミーティンをすることになりました!
今回は第一回目のミーティング。

みんなでお風呂入って、飲んで笑って…たまにミーティングして(笑)
とても良い時間を過ごせました!
... See MoreSee Less

View on Facebook
ページ上部へ戻る