公開日2018.10.31
最終更新日2022.04.26
最近お肌のシミが気になってハイチオールCを愛用してるばーいなです。
あれって二日酔いにも効くんですね。
この業界にいると、知らない横文字の単語が多く出てきます。
なんでも略せばいいってもんじゃないと思いますけど、それが通用する業界なので今だに「なんの話?」「なんて読む?」っていうのが出てきてよく調べています。
そんなわけで、今回はWebサーバについてちょっと触れたいと思います。
特にApacheとNginxについて。
ん?
早速読めませんね。
Apache(アパッチ)は有名なので読める方も多いと思いますが、
Nginx?
これ、エンジンエックスと読みます。(こんなの読めるわけない)
最初は頭の「e」忘れちゃったのかと思いましたよ。
それでは本題。
Webサーバとは
WebサイトはユーザーがWebブラウザからリクエストを行い、Webサーバはリクエストを受け付けるとその結果をWebブラウザへ返します。
例えば、テキスト情報だけの静的なページであれば、そのままHTML、CSS、画像などのデータを送ります。
店舗検索などでエリア、メニューを絞るといった動的な処理の場合、WebサーバはWebアプリケーションサーバへ処理のリクエストを依頼し、返ってきた処理をデータとして同じくWebブラウザへ送ります。
Webサーバの種類
有名所だと
- Apache(Apache HTTP Server)
- Nginx
- IIS(Microsoft Internet Information Services)
があります。
2018年9月のWebサーバのシェア調査結果がこちらです。
引用:September 2018 Web Server Survey | NET CRAFT
各Webサーバの概要
Apache(アパッチ)
1995年にApacheソフトウェア財団によって開発されたWebサーバソフトウェア。
高性能で信頼性が高いにも関わらずオープンソースであるため、無料で使用できます。
個人から大手企業まで幅広く利用されていて、使用実績もあるため信頼性も高い。
Nginx(エンジンエックス)
2002年にロシアのIgorSysoev氏によって開発されたのち、現在ではNginx,Inc.によって管理されています。
BSDライセンスで提供されていて、オープンソース版と商用向けのNginxPlusがあり、Apacheに迫る勢いで近年人気が出ています。
IIS(アイアイエス)
Microsoft社のWebサーバソフトウェア、視覚的に操作できるので、構築のハードルは低め。
企業内のイントラネットでは人気が高いそうです。
近年WebサーバのシェアはTOPを走り続けてたApacheが下降してるのに対して、Nginxが上昇しています。
各Webサーバの特徴
それぞれの特徴を比べる前に重要になるのがC10K問題です。
C10K問題とは、クライアントの接続数がある一定数を超えるとサーバがパンクする問題のこと。
引用:C10K問題 | WEB用語辞典
Apache
HTTPのサービスに特化している。
重たい仕事もほとんど全部自分でこなす。
動的コンテンツの処理速度が速い。
たくさんの機能が最初からついているのでNginxに比べるとどうしてもメモリの使用量が多くなる。
Nginx
HTTPだけでなく他サービスにも柔軟に対応できるようになっている。(ロードバランサのようにも使える)
自分では重たい仕事をせず、他に割り振ることを得意とする。
処理が軽く、大量のリクエストを処理するのに向いている。
同時リクエストを多く処理することに特化しているので、余計な機能はつけていない。その分メモリをたくさん使わない。
このように、Nginxは同時リクエストを多く処理することに特化ということでもわかるようにC10K問題のソリューションとして誕生したWebサーバなのです。
同時大量アクセスが見込まれるWebサイトの場合はNginxを導入した方がよさそうですね。
最後に
このテーマで記事を書こうと思ったのは、現在の業務で、「何でWebサーバNginxにしたんだっけ?Apacheじゃダメなんだっけ?」って話が出ていたからです。
ちなみにFacebookやメルカリもNginxを導入しているそうです。
参考:
Nginxとは?Apacheとの違いについてエンジニアに聞いてみた | GMOクラウドアカデミー
ApacheとNginxについて比較 | Qiita
シェア率急上昇の「Nginx」とは?Apacheと比較した場合のメリット・デメリット | いんふらっと