ApacheとNginx
ミドルウェアへの理解が壊滅的なので、勉強として投稿…。
エンジニアって名乗るの恥ずかしい…ちゃんと勉強しよう。
1)Nginx?
「エンジンエックス」と読む。
(ンギックス、ではないw)
Apache(アパッチ)の代替となり得るWebサーバで、
Yahoo JapanでWebサーバとして利用されているとか。
Apacheの抱える問題(大量同時アクセスetc…)を解決するために開発されたもの。
2)Webサーバってそもそもなんだっけ
APサーバとリクエスト/結果を送/受信するサーバで、
APサーバから受け取った結果はWebブラウザで表示する。
Webサーバが単独でできるのは、HTMLやJavaScriptなどの
静的コンテンツをWebブラウザに表示すること。
(いわゆる「フロント」。)
3)AP/DBサーバとの関係
こんなイメージ。↓
Webサーバ
↓↑
APサーバ
↓↑
DBサーバ
【APサーバ】
Javaでゴリゴリ書くような業務ロジックが載った「ブレーン」。
有名なのはTomcat。
【DBサーバ】
データ保管庫。
データへのアクセス(INSERT/DELETE etc…)は、
APサーバから指示が飛んでくる。
ちなみにApache Tomcatは、「Webサーバ」+「APサーバ」の
機能がついたWebアプリケーションサーバ。
(ただしAPサーバ部分は、あくまで簡易的)
4)ApacheとNginxの違い
【Apache】
HTTP(Web)サービスに特化している。
【Nginx】
(Apacheの問題を補強するために生まれたこともあって)
ロードバランサ的な役割も果たす。
同時リクエストや重たいリクエストが来た時の捌き方が上手。
細かい機能の実装がないため、Apacheに比べメモリ消費量が少ない。
【出典】
https://academy.gmocloud.com/qa/20160616/2761