定義
NGINX(「エンジンエックス」と発音します)は、現代のWebの大部分を支えている高性能なオープンソースのWebサーバー兼リバースプロキシです。静的ファイルを直接配信するほか、PHP-FPM、Node.js、Python WSGI/ASGIサーバーなどのアプリケーションバックエンドへのトラフィックのプロキシ、SSL/TLSの終端処理、複数のアップストリームサーバー間のロードバランシング、バックエンドの負荷を軽減するためのHTTPレスポンスのキャッシュなどを行います。NGINXはほとんどのVPSおよび専用LinuxホストにおけるデフォルトのWebサーバーであり、その非同期でイベント駆動型のアーキテクチャにより、高トラフィックサイトの標準としてApacheに取って代わりました。少数の固定数のワーカープロセスが、ノンブロッキングI/Oを通じてそれぞれ数千の接続を処理するため、接続ごとに1つのプロセスまたはスレッドを使用するApacheの従来のモデル(負荷時にはるかに多くのメモリを消費します)とは異なります。これは数百の同時ユーザーを超えたあたりから重要になりますが、小規模なパンフレット的なサイトでは選択の差はほとんど問題になりません。ほとんどのマネージドWordPressホストは、内部的にFastCGIキャッシュと組み合わせてNGINXを使用していますが、.htaccessベースの設定はそのまま引き継がれません。
利用方法
NGINXは、サーバー、ロケーション、アップストリーム、キャッシュを定義する階層的なテキストファイル(nginx.conf)を通じて設定されます。純粋なWebサーバーとして、純粋なリバースプロキシとして、あるいはその両方として機能させることができます。NGINX Plusは追加機能を備えた有料の商用版であり、実際にほとんどのサイトが使用しているのはオープンソース版のNGINXです。
重要な理由
静的コンテンツとリバースプロキシに関しては、NGINXはApacheよりも高速で軽量です。高トラフィックサイトにおいてはこの差が重要になり、NGINXは比較的控えめなハードウェアで数万件の同時接続を処理できます。現在、ほとんどの本番環境スタックではアプリケーションサーバーの前段にNGINXを配置し、Apacheはレガシー互換性のために残しておくという構成が一般的です。