Apache & Nginx - Mooneey/Facebook_Crawling GitHub Wiki

Apache : Client์—์„œ ์š”์ฒญ์„ ๋ฐ›์œผ๋ฉด MPM (Multi Processing Module : ๋‹ค์ค‘์ฒ˜๋ฆฌ๋ชจ๋“ˆ) ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌ ๋Œ€ํ‘œ์ ์œผ๋กœ๋Š” Prefork์™€ Worker๋ฐฉ์‹์ด ์žˆ๋‹ค.

1

  • Prefork ๋ฐฉ์‹ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณต์ œ๋˜์–ด ์ฒ˜๋ฆฌ๊ฐ€ ๋œ๋‹ค.
    ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ํ•œ๋ฒˆ์— ํ•œ ์—ฐ๊ฒฐ๋งŒ ์ฒ˜๋ฆฌํ•˜๊ณ  ์š”์ฒญ๋Ÿ‰์ด ๋งŽ์•„์งˆ์ˆ˜๋ก
    ํ”„๋กœ์„ธ์Šค๋Š” ์ฆ๊ฐ€ํ•˜์ง€๋งŒ ๋ณต์ œ์‹œ ๋ฉ”๋ชจ๋ฆฌ์˜์—ญ๊นŒ์ง€ ๋ณต์ œ๋˜์–ด ๋™์ž‘ํ•˜๋ฏ€๋กœ
    ํ”„๋กœ์„ธ์Šค๊ฐ„ ๋ฉ”๋ชจ๋ฆฌ ๊ณต์œ ๊ฐ€ ์—†์–ด ์•ˆ์ •์ 

2

  • Worker ๋ฐฉ์‹ Prefork ๋™์ž‘๋ฐฉ์‹์ด 1๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ 1๊ฐœ์˜ ์Šค๋ ˆ๋“œ๋กœ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜์—ˆ๋‹ค๋ฉด
    Worker ๋™์ž‘๋ฐฉ์‹์€ 1๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ๊ฐ ์—ฌ๋Ÿฌ ์“ฐ๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉ
    ๋ ˆ๋“œ๊ฐ„์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜๋ฉฐ PreFork๋ฐฉ์‹๋ณด๋‹ค ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋œ ์‚ฌ์šฉ

3

Nginx : Event Driven ๋ฐฉ์‹์œผ๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ forkํ•˜๊ฑฐ๋‚˜ ์“ฐ๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•„ํŒŒ์น˜์™€๋Š” ๋‹ฌ๋ฆฌ
CPU์™€ ๊ด€๊ณ„์—†์ด ๋ชจ๋“  IO๋“ค์„ ์ „๋ถ€ Event Listener๋กœ ๋ฏธ๋ฃจ๊ธฐ ๋•Œ๋ฌธ์— ํ๋ฆ„์ด ๋Š๊ธฐ์ง€ ์•Š๊ณ 
์‘๋‹ต์ด ๋น ๋ฅด๊ฒŒ ์ง„ํ–‰์ด ๋˜์–ด 1๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋กœ ๋” ๋น ๋ฅธ ์ž‘์—…์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
๋ฉ”๋ชจ๋ฆฌ์ ์ธ ์ธก๋ฉด์—์„œ Nginx๊ฐ€ System Resource๋ฅผ ์ ๊ฒŒ ์ฒ˜๋ฆฌํ•œ๋‹ค.

4

5

์ €ํฌ ์กฐ๋Š” cpu์™€ ๋ฉ”๋ชจ๋ฆฌ ์ž์›์ด ๋งŽ์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐ๋˜์–ด ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ ๊ฒŒ ์ฐจ์ง€ํ•˜๋Š” Nginx๋กœ WEB์„œ๋ฒ„๋ฅผ ๊ตฌ๋™ํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.