導入
| nginx | |
| 開発者 | イーゴリ・シソエフ |
|---|---|
| 最新バージョン | 0.7.67 [+/-] |
| 上級版 | 0.8.48 [+/-] |
| 環境 | Linux ユニックス ウィンドウズ… |
| 親切 | HTTPサーバー |
| ライセンス | BSD スタイルのライセンス |
| Webサイト | nginx.org |
nginx [エンジン x] は、Igor Sysoev によって書かれた Web (または HTTP) サーバーソフトウェアであり、非常にトラフィックの多いロシアのサイトのニーズに合わせて 2002 年に開発が始まりました。ドキュメントの一部はロシア語から英語に翻訳されています。
そのソースは BSD タイプのライセンスの下で利用可能です。

特別な機能
非同期サーバー
nginx は、各リクエストが専用プロセスによって処理される同期サーバーとは対照的に、非同期サーバーです。オペレーティング システムによる並列アーキテクチャとタスクの時分割多重化を利用する代わりに、nginx は状態変更を使用して複数の接続を同時に管理します。各リクエストの処理は多数のミニタスクに分割されるため、接続間で効率的な多重化を実現できます。マルチプロセッサ コンピュータを活用するために、複数のプロセスを開始できます。このアーキテクチャの選択により、非常に高いパフォーマンスが得られるだけでなく、Apache などの従来の HTTP サーバーと比較して、負荷とメモリ消費量が特に低くなります。
モジュール性
nginx は非常にモジュール化されており、最小限のコアと基本機能を補完する多数のモジュールがあります。各モジュールは、多数のコールバックを通じて、入力、出力、または中間 (プロキシ) コンテンツのフィルターとして機能できます。したがって、たとえば、動的コンテンツは、送信前に「gzip」モジュールによってオンザフライで圧縮できます。

最適化
カーネルは、特にメモリ割り当てに関してシステム コールの数を削減することを目的とした、最小限かつ最適なデータ構造に依存します。オペレーティング システムを最大限に活用するために、さまざまなシグナリング メカニズムを使用できます (例: Linux では epoll、BSD では kqueue)。非同期アーキテクチャにより、オペレーティング システムのスケジューラが不要になり、プロセッサ キャッシュの使用が優先されます。
その他
マスター プロセスはサーバー プロセスを制御します。これにより、HTTP サービスを停止せずに構成を変更したり、サーバーの実行可能ファイルを更新したりすることができます。
用途
nginx は、HTTP サーバーとしてだけでなく、Webリバースプロキシ サーバーや電子メール プロキシ サーバー (IMAP/POP3) としても構成できます。 nginx の最も一般的な使用法は、静的ファイルを提供する従来の Web サーバーとして構成し、通常は FastCGIインターフェイスを使用して負荷分散メカニズムを備えたアプリケーション サーバーにルーティングされる動的リクエストのプロキシとして構成することです。
nginx は、 mod_flv_streamingを使用した lighttpd と同じ原理に従って、Flash Media Server を使用せずに Flash プレーヤーにストリーミングすることによってビデオコンテンツをブロードキャストすることもできます。このために、flv ビデオファイルストリーミング モジュールngx_http_flv_moduleと、H.264 でエンコードされたビデオをストリーミングできるいくつかのストリーミング モジュールがあります。
また、Phusion Residential モジュールのおかげで、 Ruby on Railsアプリケーションを提供するために実稼働環境でも広く使用されています。トラフィックの多いRuby on Rails サイトのほとんどはnginxを使用します。 (例:ベースキャンプ)

