---
title: 社内勉強会 NGINX誕生の歴史
tags: 
author: [株式会社ビヨンド](https://www.docswell.com/user/beyond24365)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/VENGNX3DJ8.jpg?width=480
description: 社内勉強会の資料です。 NGINXの歴史についてまとめています。
published: May 31, 24
canonical: https://www.docswell.com/s/beyond24365/538RJL-2024-05-31-154720
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/VENGNX3DJ8.jpg)

社内勉強会
NGINXの誕生の歴史


# Page. 2

![Page Image](https://bcdn.docswell.com/page/Y79WR89873.jpg)

目次
・NGINXとは
・ApacheとC10K問題☆
・NGINXの誕生
・まとめ


# Page. 3

![Page Image](https://bcdn.docswell.com/page/G78NW89ZJD.jpg)

NGINXとは


# Page. 4

![Page Image](https://bcdn.docswell.com/page/L7LPNRW1JR.jpg)

プロフィール
・WEBサーバー
・2004年生まれ
得意な事
・大量の同時アクセス耐える事 など
苦手な事
・動的コンテンツの処理(スクリプト言語の処理) など


# Page. 5

![Page Image](https://bcdn.docswell.com/page/4EM4XR95JW.jpg)

Apacheと
C10K問題


# Page. 6

![Page Image](https://bcdn.docswell.com/page/PERWNRGZJ9.jpg)

圧倒的シェア！
プロフィール
・WEBサーバー
・1995年生まれ
得意な事
・動的コンテンツの処理(スクリプト言語の処理) など
苦手な事
・大量の同時アクセス


# Page. 7

![Page Image](https://bcdn.docswell.com/page/P7XPNRX1JX.jpg)

その後インターネットが普及し...


# Page. 8

![Page Image](https://bcdn.docswell.com/page/37KDNRWMED.jpg)

C10K問題
=クライアント 10000台 問題
原典引用：So hardware is no longer the bottleneck.
→クライアントが増えた時に
ハードウェアの
限界でない理由でのパフォーマンス劣化
FD,PIDの枯渇、同時起動可能なプロセス数の上限に達し 前の
処理が終るまでプロセスを起動出来なくなる


# Page. 9

![Page Image](https://bcdn.docswell.com/page/LJ3RV812E5.jpg)

Apache
(当時は)C10K問題に対抗できなかった...


# Page. 10

![Page Image](https://bcdn.docswell.com/page/8JDY8MX6JG.jpg)

なぜApacheはC10K問題に
対応できなかったのか


# Page. 11

![Page Image](https://bcdn.docswell.com/page/VEP68RKZ78.jpg)

Apacheのリクエスト処理方法の特徴
MPM(Multi Processing Module )
プロセスを複数生成することで同時にリクエストを処理出来る。
これを実現するモジュール（追加機能）の事
→同時リクエストが来た際の処理の方法
3種類ある
→
prefork / worker / (event driven)


# Page. 12

![Page Image](https://bcdn.docswell.com/page/27V3NRVMJQ.jpg)

ポイント
prefork
プロセスを増やす
worker


# Page. 13

![Page Image](https://bcdn.docswell.com/page/5JG3KMLXEL.jpg)

処理の流れ
リクエスト受け取る
↓
プロセス / スレッド を増やす
↓
プロセス数の上限に達する
↓
新たにプロセスを生成出来ず
あるリクエストの処理が終わるまで新たな接続は待たなければならない


# Page. 14

![Page Image](https://bcdn.docswell.com/page/47Q5NRY5EP.jpg)

NGINXの誕生


# Page. 15

![Page Image](https://bcdn.docswell.com/page/KE49G8WVJ1.jpg)

NGINXのリクエスト処理方法の特徴
・イベント駆動
→クライアントからのリクエストをイベントとして
プロセス内で処理を実行する
・ノンブロッキングI/O
→データ処理の完了を待たずに他の処理を行うこと


# Page. 16

![Page Image](https://bcdn.docswell.com/page/L71KD2Y4EG.jpg)

プロセスを増やさない
イベント駆動


# Page. 17

![Page Image](https://bcdn.docswell.com/page/G7WDYRGZE2.jpg)

ノンブロッキングI/O
炊飯
米を洗う
肉.野菜を切る
煮込む
待 米盛付け
ルー盛付け
完成


# Page. 18

![Page Image](https://bcdn.docswell.com/page/4JZGXRLL73.jpg)

処理の流れ
リクエスト受け取る
↓
クライアントの接続要求、リクエストの読み込み、応答等の処理を
イベントとして並列実行する
↓
プロセス数を増やさない為、クライアントが増えても対応出来る


# Page. 19

![Page Image](https://bcdn.docswell.com/page/YE6Y4RWMJV.jpg)

まとめ
Apache１強
↓
インターネットの普及
↓
C10K問題
↓
Apacheが対応出来ない
↓
NGINX開発
☆だからNGINXは大量アクセスに強い


# Page. 20

![Page Image](https://bcdn.docswell.com/page/GE5GQ8MQE4.jpg)

技術の生まれた歴史を学ぶと
理解が深まるし楽しい！


# Page. 21

![Page Image](https://bcdn.docswell.com/page/972YPK9W7R.jpg)

ご清聴ありがとうございました！


