Nginx(「エンジンエックス」と発音)はオープンソースのウェブサーバーです。ウェブサーバーとしての利用はさることながら、リバースプロキシ、HTTPキャッシュ、ロードバランサとしても活用されています。

Nginxを採用している企業には例えば、Autodesk、Atlassian、Intuit、T-Mobile、GitLab、DuckDuckGo、Microsoft、IBM、Google、Adobe、Salesforce、VMWare、Xerox、LinkedIn、Cisco、Facebook、Target、Citrix Systems、X(旧Twitter)、Apple、Intelなどが挙げられます(出典)。

Nginxは、1万以上の同時接続を処理する際のパフォーマンスの課題であった「C10K問題」への解決策として、Igor Sysoev氏によって開発されました。その後、2004年10月に一般公開されています。

Nginxの原点は、スケーラブルなパフォーマンス最適化にあり、特に静的コンテンツや同時リクエストが多い状況では、ベンチマークで他の主要ウェブサーバーを圧倒する傾向にあります。KinstaではこのメリットからNginxを採用しています。

Nginxの基本

Nginxはメモリ使用量が少なく、同時実行性が高まるよう設計されています。リクエストごとにプロセスを作成するのではなく、リクエストを単一のスレッドで処理する、非同期のイベント駆動型です。

Nginxでは、1つのマスタープロセスで複数のワーカープロセスを制御することができます。マスターでワーカープロセスを管理し、ワーカーが処理を行います。また非同期であるため、各リクエストが他のリクエストをブロックすることなく同時に実行されます。

Nginxの主な機能や用途は以下の通りです。

  • リバースプロキシ(キャッシュ機能あり)
  • IPv6
  • 負荷分散(ロードバランサ)
  • FastCGIサポート(キャッシュ機能あり)
  • WebSockets
  • 静的ファイル、インデックスファイルの処理、自動インデックス
  • TLS/SSL (SNIあり)

NginxとApacheの使用率

Apacheも人気の高いオープンソースのウェブサーバーです。 W3Techsの調べによると、Apacheは数字を見る限り最も人気が高く、ウェブサーバーの特定されているウェブサイトの43.6%(2018年の47%から減少)で使用されています。続く2位のNginxは41.8%です。

Netcraftは、2億3,300万のドメインを調査し、Apacheの使用率が31.54%、Nginxが26.20%であることを発表しています。

ウェブサーバーのシェア率(画像出典: Netcraft)
ウェブサーバーのシェア率(画像出典: Netcraft

このように全体で見ると、Apacheの方が人気がありますが、トラフィックの多いサイトに絞るとNginxの使用率の方が高いことがわかります。

アクセス数の多いウェブサイトでのNgnixの使用率は、以下の通りです。

  • 上位10万件のサイト:60.9%(2018年の56.1%から増加)
  • 上位1万件のサイト:67.1%(2018年の63.2%から増加)
  • 上位1,000件のサイト:62.1%(2018年の57%から増加)

Netflix、NASA、さらにWordPress.comなど、特に多くのリソースが必要なウェブサイトでNgnixが採用されています。

一方、Apacheの使用率は、トラフィックの多いサイトに絞り込むと低下します。

  • 上位10万件のサイト:24.0%(2018年の27.1%から低下)
  • 上位1万件のサイト:18.8%(2018年の21.5%から低下)
  • 上位1,000件のサイト:16.6%(2018年の16.2%から増加)

2004年以降のGoogle検索のデータを見ると、Apacheの使用率は着実に低下しており、Nginxを使用するサイトが増えていることがわかります。

NginxとApacheの使用率比較
NginxとApacheの使用率比較

Nginxが大規模なサイトでより優れたパフォーマンスを実現することを考慮すれば、アクセスの多いサイトがApacheではなくNginxを選択するのは自然な結果です。NginxとApacheの詳しい比較はこちらをご覧ください。

使用中のウェブサーバーを特定する方法

ほとんどのウェブサイトでは、serverというHTTPヘッダーを確認すれば、使用しているウェブサーバーを調べることができます。Chromeのデベロッパー ツールの「ネットワーク」タブを開くと、HTTPヘッダーが表示されます。PingdomGTmetrixなどのツールで確認することも可能です。

HTTPヘッダーを確認しても、ウェブサーバーがわからない可能性があります。例えば、Cloudflareなどのプロキシサービスを使用しているWordPressサイトの場合、serverヘッダーには「cloudflare」と表示されます。

NginxのHTTPヘッダー
NginxのHTTPヘッダー