トップ OSS紹介 Nginx

Nginx

サポート対象

NRIのOpenStandiaが提供するNginx最新情報

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での高速化

  • HTTP、HTTPS、SPDY、SMTP、IMAP、POP3
  • ロードバランサ、キャッシュ、リバースプロキシ
  • サーバーあたり100万の同時接続
  • インスタンスごとに100K +仮想サーバ
  • 圧縮
  • 静的コンテンツのオフロードとHTTPビデオストリーミング

アプリケーションリクエストルーティング

  • HTTP、FastCGI、 SCGI、 uwsgi、 memcached
  • 完全一致、プレフィックス、正規表現ベース

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

    Jetty

    ジェティ。100%Javaで開発されたJava Servletコンテナ/Webサーバです。

  • Apache HTTP Server
    サポート対象

    Apache HTTP Server

    アパッチエイチティーティーサーバ。世界中で最も人気の高いwebサーバソフトウェアの一つです。

  • Apache Tomcat
    サポート対象

    Apache Tomcat

    アパッチトムキャット。JavaサーブレットやJSPを実行するためのソフトウェア

オープンソースに関するさまざまな課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。