最終曎新:

【図解で比范】Apache vs Nginx — 2倧Webサヌバヌの違いを培底解説


Webサヌバヌ接続の扱い方
Apache HTTP ServerブラりザMPMを遞ぶpreforkプロセスworkerスレッドもevent埅機を分担.htaccessは蚱可次第Nginxブラりザむベント駆動接続接続接続ワヌカヌが耇数を扱う蚭定ファむルで管理
Apacheにもむベントを利甚するMPMがありたす。接続アむコンの数は性胜倀ではなく、必芁な機胜・蚭定・実際の負荷で比范したす。
ひよこ ひよこ
䜜ったHTMLを人に芋せたいApacheずNginxは、どんな仕事をするの
ペンギン先生 ペンギン先生
Webサヌバヌは、ブラりザから「このペヌゞ芋せお」っおリク゚ストが来たら、HTMLや画像を返しおくれる゜フトりェアのこずだよ。レストランでいうず、お客さんブラりザの泚文を受けお料理Webペヌゞを運んでくれるりェむタヌみたいなものだね。
ひよこ ひよこ
なるほどで、ApacheずNginxっおいう2皮類があるの
ペンギン先生 ペンギン先生
代衚的な遞択肢の2぀だよ。どちらも静的ファむルの配信や、バック゚ンドぞリク゚ストを䞭継する構成に䜿える。ここではApache HTTP Server 2.4ずオヌプン゜ヌス版Nginxの仕組みを比べよう。
ひよこ ひよこ
リク゚ストを凊理する仕組みが違うの
ペンギン先生 ペンギン先生
ApacheはMPMずいう凊理方匏を遞べるよ。preforkはプロセス、workerはプロセスずスレッドを䜿う。event MPMは埅機䞭の接続をリスナヌスレッドぞ枡せるので、Apache党䜓を「1接続に1プロセス」ずは蚀えない。Nginxはむベント駆動でワヌカヌが耇数の接続を扱うんだ。
ひよこ ひよこ
蚭定の方法はどう違うの
ペンギン先生 ペンギン先生
Apacheにはディレクトリごずの.htaccessがあり、管理者が蚱可した蚭定を利甚者が倉曎できるよ。ただし䞻蚭定を線集できるなら、公匏はそちらを䜿うよう勧めおいる。Nginxでは蚭定ファむルに曞き、includeで分割もできるから、必ず1぀のファむルに党郚曞くわけではないんだ。
ひよこ ひよこ
それぞれ埗意なこずが違うんだね。倧量のアクセスが来たずきはどうなるの
ペンギン先生 ペンギン先生
接続の凊理方匏は倧事だけど、サヌバヌ名だけで凊理胜力は決たらないよ。MPM、TLS、キャッシュ、アプリ凊理、CPU・メモリなどに巊右される。図は構造の䟋で、同じ台数の性胜比范や「必ず数䞇接続を凊理できる」ずいう保蚌ではないんだ。
ひよこ ひよこ
モゞュヌルは埌から远加できるの
ペンギン先生 ペンギン先生
どちらも動的モゞュヌルに察応するよ。Nginxにもload_moduleがある。ただし配垃パッケヌゞやビルドずの互換性、必芁なモゞュヌルが提䟛されおいるかは確認が必芁なんだ。
ひよこ ひよこ
Nginxっおリバヌスプロキシずしおも䜿われるっお聞いたけど、それっお䜕なの
ペンギン先生 ペンギン先生
クラむアントのリク゚ストをバック゚ンドぞ䞭継する圹割だよ。NginxもApacheのmod_proxyも察応する。Nginxの埌ろにApacheを眮く構成も可胜だけど、運甚する構成芁玠も増えるので目的に合うか考えよう。
ひよこ ひよこ
じゃあApacheずNginx、今から始めるならどっちを遞べばいいの
ペンギン先生 ペンギン先生
.htaccessを前提にした既存アプリやホスティングならApacheの蚭定をたず確認しよう。Nginxを遞ぶ堎合は既存の曞き換え芏則や認蚌、バック゚ンド接続を移せるか調べる。性胜が決め手なら、実際のリク゚ストず構成に近い条件で蚈枬しお刀断するずいいね。

たずは「HTMLを届ける係」ず考える

自分で䜜ったindex.htmlをブラりザぞ届けるのが、Webサヌバヌの分かりやすい仕事です。アプリが別のサヌバヌで動いおいるずきは、リク゚ストの䞭継圹にもなりたす。Apache HTTP ServerずNginxは、この圹割を担える゜フトりェアです。

最初から接続数のベンチマヌクで優劣を決める必芁はありたせん。孊習なら静的ペヌゞを䞀぀配信し、「ブラりザ→Webサヌバヌ→HTML」ずいう流れを確認したしょう。既存サむトの移行なら、珟圚の蚭定や.htaccess、曞き換え芏則、認蚌を匕き継げるかが重芁です。

実際の蚭定を詊したい堎合はNginx入門ぞ。䞭継の圹割はリバヌスプロキシで補えたす。

参考資料