Nginx情報
Nginxとは
Nginx(エンジンエックス)は、オープンソースのWebサーバ/リバースプロキシで、IMAP/POP3のプロキシサーバとしても動作します。
Nginxは、2002年ロシアのエンジニアIgor Sysoevによって開発され、2004年にオープンソースプロジェクトとして公開されました。現在は、彼が2011年に設立したNginx, Inc.が中心となって開発が進められおり、商用サポートも提供されています。
Nginxは、軽量かつ高性能、基本的なHTTP機能の他にも多くの機能を備え、マルチプラットフォームに対応しています。設定の容易さ、消費リソースの低さなどから近年人気が急上昇しており、Apache HTTPサーバの代替として導入が進んでいます。
Nginxは、C10K問題(クライアント1万台問題※)に対応して設計されたサーバであり、同時接続ユーザ数が多いサイトでの高速な処理には定評があります。
Netcraftの2023年10月の調査によると、Nginxは全サイト最大のマーケットシェア(23.22%)を持ち、また活動的な上位100万サイトの 20.66%で使用されているWebサーバであるとされています。
※C10K問題(クライアント1万台問題)とは、ハードウェアやネットワークの性能に問題なくてもクライアントの同時接続数がある一定数を超えるとサーバがパンクする問題のこと。 C は「Client(クライアント)」の頭文字、10K は「1万台」を意味します。
Apache HTTPサーバなどでは、クライアント1台に対しプロセス番号を1つ振るため、大量の同時クライアントの接続によりプロセス番号が不足し、 これがボトルネックになってWebサーバの処理速度が遅くなり、最悪の場合はサービス停止となります。この接続クライアントの限界が5桁あたりなので、C(クライアント)10K(1万)問題と言われています。
Nginxは、このC10K問題を解決することを目的とし、Webページのリクエストのたびに新しいプロセスまたはスレッドを立てるApache HTTPサーバとは異なった、イベント駆動アーキテクチャを採用しています。
主な機能
主な機能は以下のとおりです。
機能 |
詳細 |
---|---|
Layer 7での高速化 |
|
アプリケーションリクエストルーティング |
|
SSL認証機能(SSLターミネーション) |
TLSv1.1/TLSv1.2/TLSv1.3/SSL/SNI |
セキュリティ |
|
高可用性 |
|
主な特徴
主な特徴は以下のとおりです。
マルチOS |
Linux、BSD系、Mac OS X、Solaris、Microsoft Windowsなど、さまざまなOSをサポート |
---|---|
高速 |
アプリケーションコンテナが、多くの同時接続のユーザのハンドリング、圧縮、SSL、キャッシュ、ロードバランス、リクエストルーティングから切り離されているため、応答速度が速い |
設定の容易さ |
基本設定がApacheよりもスケーラブルであり、簡単かつ論理的で分かりやすい |
消費リソースの低さ |
従来のWebサーバでは同時接続数が増えると、プロセス数やスレッド数が増えてメモリを消費してオーバーヘッドが大きくなるが、Nginxはリクエストの処理がスレッドに依存せず、スケーラブルな非同期のイベント駆動アーキテクチャを採用しているため、CPUの負荷とメモリ消費量を抑えることが可能 |
高機能 |
Webサーバ/リバースプロキシだけでなく、キャッシング、ロードバランサ、HTTPメディアストリーミング、IMAP/POP3のプロキシサーバとしても動作 |
コスト効果 |
Nginxはライセンス費用がかからないため、商用製品に比べて大幅に導入コストを削減可能 |
導入事例
Nginx(エンジンエックス)は、トップ 10,000のアクセス数が多いサイト(Netflix, Facebook, Wikipedia,Zappos, Groupon, LivingSocial, Hulu, TechCrunch, Dropbox ,WordPressなど)の25%以上で利用されているとされています。
メディア&エンターテイメント業界、ゲーム業界、クラウド関連企業、E-コマース、ホスティング、 CDN、政府系機関がnginx(エンジンエックス)を利用してWebサービスを最適化し、コストを削減し、ユーザーエクスペリエンス向上を果たしています。
近年、日本でもクラウドサービス(Paas)、大手雑誌社によるニュースサイトや、ブログメディア、大規模SNSサイトなどNginxの導入事例が増えてきています。
類似プロダクト
- Microsoft Internet Information Services (IIS)
- Oracle HTTP Server
- IBM HTTP Server
商用製品との機能比較
商用製品との機能等の比較は以下のとおりです。
機能 |
Nginx |
Apache HTTP Server |
商用製品A |
商用製品B |
---|---|---|---|---|
HTTP機能 | ||||
静的ファイル・インデックスファイルの処理および自動インデクシング |
○ |
○ |
○ |
○ |
キャッシュ付きリバースプロキシ |
○ |
○ |
○ |
○ |
ロードバランサ(負荷分散機能) |
○ |
○ |
○ |
○ |
フォールトトレランス(耐障害性機能) |
○ |
○ |
○ |
○ |
SSL/TLSサポート |
○ |
○ |
○ |
○ |
Basic認証 |
○ |
○ |
○ |
○ |
Digest認証 |
○ |
○ |
○ |
○ |
FastCGI, uWSGI, SCGI サポート |
○ |
○ |
△※1 |
○ |
名前ベースおよびIPベースの仮想サーバ |
○ |
○ |
○ |
○ |
キープアライブとパイプライン接続のサポート |
○ |
○ |
○ |
○ |
同一アドレスからの同時接続もしくは同時リクエストの制限 |
○ |
△※2 |
○ |
○ |
gzip圧縮 |
○ |
○ |
○ |
○ |
10000以上の同時コネクションを処理する能力 |
○ |
○ |
不明 |
不明 |
URL Rewrite |
○ |
○ |
○ |
○ |
ログのカスタマイズ |
○ |
○ |
○ |
○ |
Server Side Includes |
○ |
○ |
○ |
○ |
WebDAV |
○ |
○ |
○ |
○ |
クライアント処理を中断させること無く再構成、オンラインアップグレード |
○ |
○ |
× |
○ |
3xx-5xx エラーコードのリダイレクト |
○ |
○ |
○ |
○ |
FLVストリーミング |
○ |
× |
× |
○ |
埋め込み perl |
○ |
○ |
× |
○ |
速度制限 |
○ |
○ |
○ |
○ |
メールプロキシサーバ機能 | ||||
外部の HTTP 認証サーバと内部 SMTP バックエンドへの接続リダイレクトを利用したユーザ認証 |
○ |
× |
○ |
× |
SMTP、POP3、IMAP認証 |
○ |
× |
○ |
× |
STARTTLSサポート |
○ |
× |
○ |
× |
SSL/TLSサポート |
○ |
× |
○ |
× |
- IISでは、uWSGIとSCGI対応にはサードパーティ製モジュールが必要
- Apacheでは、サードパーティ製モジュールが必要
サードパーティ提供によるモジュール
Nginxは、モジュールにより機能を拡張できる仕組みになっており、サードパーティ製のモジュールが数多くあります。
動作環境
テスト済みの動作環境は、以下のとおりです。
サーバ
OS
- Linux(RHEL/CentOS、Debian、Ubuntu、SUSE、Alpine)
- FreeBSD
- macOS
- Solaris
- Microsoft Windows
- AIX
- HP-UX
Nginx が Support する代表的な開発言語
- PHP
- Ruby
- Python
- Perl
※バージョンによって動作環境は異なります。
Nginxのライセンス
Nginxのライセンスは、BSD系の 2条項ライセンスです(BSD-likeライセンス)です。
BSD-likeライセンスは、ベースとなるBSDライセンスをベースとして作成されたもので、記載された2つの条件下で、改変の有無に関わらず、ソースやバイナリの利用と再配布が認められています。
製品ダウンロード
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
Jetty
ジェティ。100%Javaで開発されたJava Servletコンテナ/Webサーバです。
-
サポート対象
Apache HTTP Server
アパッチエイチティーティーサーバ。世界中で最も人気の高いwebサーバソフトウェアの一つです。
-
サポート対象
Apache Tomcat
アパッチトムキャット。JavaサーブレットやJSPを実行するためのソフトウェア