「Apache vs nginx」という見方は正しいのか
こうしたWebサーバソフトウェアの利用傾向は、W3Techsの最新データでより顕著にわかる。InfoWorldの記事でも指摘されているが、Web全体でのシェア、上位100万、上位10万、上位1万、上位1000とシェアを分解していくと、Apacheのシェアが純減していき、上位1000ではnginxとApacheが逆転する。
W3TechsのデータではMicrosoft(IIS)は上位サイトから下位サイトまでまんべんなく利用されている傾向があるが、上位1000になるとシェアがやや大きく減少する。また、Googleは上位1000になると急にシェアが増加しプレゼンスが高まる。これらは、どのWebサーバソフトウェアがどのようなユーザー層によって成り立っているかをよく示している。
改めてNetcraftとW3Techsのデータを比較して、次のような傾向がわかる。
- Apacheは全体に広く利用されており、そのシェアは半数に近い。一方でシェアは減少傾向にある
- Microsoft(IIS)は自動生成またはダミーサイトなどでの利用が多いように見えるが、同時に上位サイトでも利用されており、全体に裾野が広い
- nginxは上位サイトほど利用率が高い傾向があり、そのシェアは増え続けている
- 全体でみると少ないものの、Googleは上位サイトでの利用が多い
以上を踏まえたコラムがInfoWorldに掲載されているが、ASP.NETのような仕組みを使う場合にはMicrosoft(IIS)が必須だが、Linux/FreeBSDなど多くのオープンソースを好む管理者には依然としてApacheの利用が多く、同時にnginxも広まっているようだ。
「Apacheとnginxのどちらがいいのか?」というのは難しい問いだが、伝統的にApacheが標準的なWebサーバとして利用される一方で、nginxはロードバランサーを組み合わせての大規模サイト構築など、より高度な仕組みの実現に用いられることが多い。上位サイトはアクセス数の多さやサービスの複雑性から考えてnginxの特性を活かしやすいともいえ、それがApacheよりもnginxのシェアが高くなる現象に反映されているのだろう。
nginxはもともと「軽量で並列動作に向いたリバースプロキシ」として開発が進められ、通常のWebサーバ処理に加えてロードバランサー機能を備えている点が特徴だ。特に高負荷環境でのパフォーマンスを重視しており、この点でApacheと差別化が図られている。
だが、nginxでは即応性に秀でているものの、PHPなどによって生成されるダイナミックコンテンツの処理ではオーバーヘッドがあり、この場合はApacheをバックエンドにコンテンツ生成を任せ、フロントエンドをnginxで処理するなど、上位サイトの多くでは両者を適時組み合わせるケースがほとんどだという。
動画ストリーミングなどでは両者を入れ替えたほうがいいケースもあり、Microsoft(IIS)も含めて適材適所で組み合わせるのがベターで、どれか特定のWebサーバソフトウェアを担ぎ上げるものではないというのがその意見だ。
その意味では、昨今のApacheシェア減少と他の勢力の躍進は、従来のApache偏重から、一長一短のソフトウェア同士を組み合わせて適切解を探し始めた結果なのかもしれない。