なぜNginxが選ばれるのか、そもそものソフトウェアから理解していこうと思います。
Nginxとは、Webサーバーの一種ですが、
そもそもWebサーバー自体の認識が曖昧だったので、
「ソフトウェア」から順を追って調べてみました。
ソフトウェア
ソフトウェアは、コンピューターを構成するもののうち、目に見えないもの。
目に見えるものは、ハードウェアという(コンピューター自体や周辺機器など)
- OS
- アプリケーションソフトウェア
- ミドルウェア
- その他
OS
OSとは、アプリケーションソフトに動作環境を提供するソフトウェアで、入出力の制御やハードウェアの管理などコンピュータの基本的なコントロールを行います。
つまり、アプリが動くための環境。
MacOS, Windows, Linuxなど。
ミドルウェア
OSとアプリの仲立ちするもの。
アプリに必要な機能を提供する。
アプリケーションソフトウェア
アプリケーションソフトウェアとは、ユーザーがコンピュータ上で作業したい機能を、直接的に実現するソフトウェアです。アプリケーションソフトの例としては、文書作成ソフト、表計算ソフト、会計ソフト、メールソフト、ゲーム、画像編集ソフト、データベースソフト、プレゼンテーションソフト、音楽ソフトなどがあります。
引用元:https://employment.en-japan.com/tenshoku-daijiten/14870/
その他
デバイスドライバ: 周辺機器を制御するためのソフトウェア
ファームウェア: 周辺機器自身の制御のために動作するソフトウェア
など
ミドルウェア
- Webサーバ
- アプリケーションサーバ
- データベース管理サーバ
Webサーバ
HTTPリクエストを送り、レスポンスを返すプログラム。
ApacheやNginxなど。
アプリケーションサーバ
ユーザからのリクエストを受け取り、その内容をDBに渡す機能を提供するプログラム。
NGINX Unitなど。
Apacheはアプリケーションサーバーも兼ねている。
データベース管理サーバ
データベースを管理し、データベースに対するアクセス要求を管理、リクエストされた処理を行うソフトウェア。
MySQL, PostgreSQL, Oracleなど。
Nginx(エンジンエックス)とは
- Webサーバソフトウェア
- NGINX Unit(アプリケーションサーバ)と組み合わせる
- C10K(同時クライアント接続数がある一定数を超えるとサーバがパンク)に耐えうる設計
- 同時接続数はApacheの10~100倍
- 負荷を分散できる
CPUリソースがたくさん必要な処理には向いていないらしい。
Nginxが選ばれる理由
Apacheが、リクエストが大量に来ると負荷処理が大きくなるのに比べ、
Nginxは、Apacheより速くて高負荷に強い!!!!!!
コメント