Nginx対Apache:どちらがあなたに最適か?

特集Apache対Nginxデザインクレジット:Vecteezy.com-226441

20年間、Apacheはウェブサーバー市場を支配してきましたが、その市場は日々縮小しています。Nginxはこの古参のサーバーに追いついただけでなく、現在では多くの高トラフィックのウェブサイトで好まれています。Apacheユーザーはここで異論を唱えるかもしれません。そのため、どちらのウェブサーバーが優れているかについて結論を急ぐべきではありません。真実は、両者が完全なウェブスタックの中心を形成しており、最終的な選択は個々のニーズに依存するということです。

例えば、Drupalウェブサイトを運営している人々はしばしばApacheを使用しますが、WordPressユーザーはNginxを好む傾向があります。したがって、私たちの目標は、ワンサイズの推奨を提供するのではなく、あなた自身の要件をよりよく理解する手助けをすることです。とはいえ、以下の2つの比較は正確な状況を示しています。

また読む: 2021年に試すべき12のベストオープンソースソフトウェア

1. 人気

2012年までに、ウェブサイトの65%以上がApacheに基づいていました。この人気は、その歴史的な遺産によるものです。Apacheは、ワールドワイドウェブの成長を先駆けた最初のソフトウェアの1つでした。しかし、時代は変わりました。W3Tech.comによると、2019年1月14日現在、Apache(44.4%)はNginx(40.9%)をわずかに上回っています。両者はウェブサーバー市場のほぼ85%を支配しています。

ウェブサーバー市場シェアW3techs.com

高トラフィックのウェブサイトに関しては、以下のグラフが興味深いです。もちろん、NginxはApacheを大きく上回っていますが、YouTube、Gmail、Driveなどのウェブサイトを支えるGoogleサーバーには及びません。

ウェブサーバー市場@W3Techs 2019年1月15日

ある時点で、多くのウェブサイト(このサイトを含む)がApacheからNginxに移行しました。明らかに、後者は最新でトレンディなウェブサーバーと見なされています。Apache上の高トラフィックウェブサイト(例:WikipediaやNew York Times)は、しばしばVarnishのようなフロントエンドHTTPプロキシを使用しています。

スコア: ApacheとNginxの人気の差は急速に縮まっています。しかし、Apacheが絶対数でまだ先行しているため、このラウンドは引き分けとします。

2. スピード

良いウェブサーバーの主な特性は、速く動作し、どこからでも接続やトラフィックに簡単に応答できることです。サーバーの速度を測定するために、Apache(Expedia.com)とNginx(Booking.com)に基づく2つの人気の旅行ウェブサイトを比較しました。Bitcatchaというオンラインツールを使用して、複数のサーバーの比較を行い、Googleの基準である200msと比較しました。Nginxに基づくBooking.comは「非常に速い」と評価されました。一方、Apacheに基づくExpedia.comは「平均以上で改善の余地がある」と評価されました。

何度も両方の旅行ウェブサイトを使用した経験から、ExpediaはBookingよりもクエリに対する結果を返すのが若干遅いと個人的に感じています。

ウェブサーバー応答時間Booking.com(Nginx)対Expedia.com(Apache)

以下は、他のいくつかのウェブサイトに対する2つのサーバーの比較です。Nginxは以下のすべてのケースで速いと感じますが、1つを除いてです。

Bitcatchaでテストされたウェブサイトサーバー速度

スコア: Nginxがスピードラウンドに勝ちました。

また読む: Nginx(Ubuntu)で「Let’s Encrypt」無料SSL証明書を設定する方法

3. セキュリティ

NginxとApacheの両方は、ウェブサイトのセキュリティを非常に真剣に考えています。DDoS攻撃、マルウェア、フィッシングに対処するための堅牢なシステムが不足しているわけではありません。両者は定期的にセキュリティレポートやアドバイザリーを発表し、すべてのレベルでセキュリティが強化されるようにしています。

スコア: このラウンドは引き分けとします。

4. 同時接続

ApacheはNginxの規模と能力に対して劣っているという認識があります。結局のところ、NginxはもともとFastCGIおよびSCGIハンドラーの速度問題を加速するために設計されました。しかし、Apache 2.4以降(デフォルトバージョン)、同時接続の数に大きな改善が見られました。この改善がどれほど進んでいるかを調べる価値があります。

Loadimpact.comでのストレステストに基づいて、再びBooking.com(Nginx)とExpedia.com(Apache)を比較しました。25人の仮想ユーザーに対して、Nginxのウェブサイトは1秒あたり200リクエストを記録でき、これはApacheの80リクエストの2.5倍です。明らかに、専用の高トラフィックウェブサイトを持っている場合、Nginxはより安全な選択です。

Loadimpact.comでのApache対Nginxのスケーラビリティテスト

スコア: Nginxが同時接続ラウンドに勝ちました。

5. 柔軟性

ウェブサーバーはカスタマイズを許可するのに十分柔軟であるべきです。Apacheは.htaccessツールを使用してこれをうまく行いますが、Nginxはこれをサポートしていません。これにより、管理者の職務の分散が可能になります。サードパーティやセカンドレベルの管理者がメインサーバーにアクセスするのを防ぐことができます。さらに、Apacheは60以上のモジュールをサポートしており、非常に拡張性があります。Apacheが共有ホスティングプロバイダーに人気がある理由があります。

Apacheの柔軟な機能:モジュールとhtaccessの例

スコア: Apacheがこのラウンドに勝ちました。

その他のパラメータ

過去には、NginxはApacheとは異なり、Windows OSをあまりサポートしていませんでした。しかし、もはやそうではありません。また、Apacheは負荷分散とリバースプロキシに対して弱いと見なされていましたが、これは今では変わっています。

最終結果

Nginxはこのコンテストを2-1で辛うじて勝ちました。とはいえ、技術的なパラメータに基づくNginxとApacheの客観的な比較は、完全な状況を示すものではありません。最終的に、私たちの判断は、両方のウェブサーバーがそれぞれの方法で有用であるということです。

Apacheはフロントエンドサーバー(Nginx自体が1つの選択肢)と共に使用するべきですが、Nginxはより多くのカスタマイズと柔軟性を持つことができます。