Nginxはその高いパフォーマンスと安定性、豊富な機能、設定の容易さ、消費リソースの低さで知られています。
NginxはC10K問題に取り組むべく開発された一握りのサーバのうちの一つです。従来のサーバとは異なり、Nginxはリクエストの処理をスレッドに依存していません。その代わりにもっとスケーラブルな(非同期の)イベント駆動アーキテクチャを使用しています。このアーキテクチャはメモリ使用量が少ないだけでなく、最も重要な事として、稼働時のメモリ使用量が予測可能であるということです。同時リクエスト数が1万リクエストもなかったとしても、Nginxのハイパフォーマンスやメモリ消費量の少なさの恩恵を受ける事はできるでしょう。Nginx は小規模な VPS から大規模なサーバからなるクラスタまで対応する拡張性を備えています。
NginxはWordPressやHulu、Github、Ohloh、SourceForge、WhitePages、TorrentReactor といった知名度の高いサイトを稼働させています。
基本的な HTTP 機能
- スタティックなインデックスファイルの提供、自動インデクシング、オープンなファイルディスクリプタキャッシュ
- キャッシングで高速化されたリバースプロキシ、シンプルなロードバランシングとフォールトトレランス
- リモートの FastCGI サーバのキャッシングによる高速化サポート、シンプルなロードバランシングとフォールトトレランス
- モジュールアーキテクチャ。フィルタには gzip、バイトレンジ、チャンク化されたレスポンス、XSLT、SSI、画像リサイズフィルタが含まれます。FastCGI もしくはプロキシ化されたサーバなら、単一ページ内への複数 SSI 封入が並列で処理可能。
- SSL と TLS SNI サポート。
他の HTTP 機能
- 名前ベースと IP ベースの仮想サーバ
- キープアライブとパイプライン接続のサポート
- 柔軟な設定
- クライアント処理を中断させること無く再構成、オンラインアップグレード
- アクセスログフォーマット、バッファされたログ書き込み、素早いログローテーション
- 3xx-5xx エラーコードのリダイレクト
- rewrite モジュール
- クライアントの IP アドレスをベースにしたアクセスコントロールと HTTP ベーシック認証
- PUT、DELETE、MKCOL、COPY、MOVE メソッド
- FLV ストリーミング
- 速度制限
- 同一アドレスからの同時接続もしくは同時リクエストの制限
- 埋め込み perl
メールプロキシサーバ機能
- 外部の HTTP 認証サーバを利用した IMAP/POP3 バックエンドへのユーザリダイレクト
- 外部の HTTP 認証サーバと内部 SMTP バックエンドへの接続リダイレクトを利用したユーザ認証
- 認証メソッド:
- POP3: USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5;
- IMAP: LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5;
- SMTP: AUTH LOGIN/PLAIN/CRAM-MD5;
- SSL サポート
- STARTTLS と STLS のサポート
アーキテクチャとスケーラビリティ
- 一つのマスタープロセスと複数のワーカープロセス。ワーカーは非特権ユーザとして動く
- 通知メソッド: kqueue (FreeBSD 4.1+)、epoll (Linux 2.6+)、rt シグナルs (Linux 2.2.19+)、/dev/poll (Solaris 7 11/99+)、イベントポート (Solaris 10)、select、poll
- EV_CLEAR, EV_DISABLE (イベントを一時的に無効にする)、 NOTE_LOWAT, EV_EOF、利用可能なデータの数、エラーコードを含む様々な kqueue 機能のサポート
- sendfile (FreeBSD 3.1+, Linux 2.2+, Mac OS X 10.5)、sendfile64 (Linux 2.4.21+)、sendfilev (Solaris 8 7/01+) のサポート
- ファイル AIO (FreeBSD 4.3+, Linux 2.6.22+)
- Accept-filters (FreeBSD 4.1+) と TCP_DEFER_ACCEPT (Linux 2.4+) のサポート
- 1 万の非アクティブな HTTP キープアライブ接続は約 2.5M のメモリーを使用
- データコピーの実施は最小に保たれる
テスト済み OS とプラットフォーム
- FreeBSD 3 — 8 / i386; FreeBSD 5 — 8 / amd64;
- Linux 2.2 — 2.6 / i386; Linux 2.6 / amd64;
- Solaris 9 / i386, sun4u; Solaris 10 / i386, amd64, sun4v;
- MacOS X / ppc, i386;
- Windows XP, Windows Server 2003
0 件のコメント:
コメントを投稿