Apache & Nginx - Mooneey/Facebook_Crawling GitHub Wiki
Apache : Client์์ ์์ฒญ์ ๋ฐ์ผ๋ฉด MPM (Multi Processing Module : ๋ค์ค์ฒ๋ฆฌ๋ชจ๋) ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ ๋ํ์ ์ผ๋ก๋ Prefork์ Worker๋ฐฉ์์ด ์๋ค.
- Prefork ๋ฐฉ์
์คํ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ๋ณต์ ๋์ด ์ฒ๋ฆฌ๊ฐ ๋๋ค.
๊ฐ ํ๋ก์ธ์ค๋ ํ๋ฒ์ ํ ์ฐ๊ฒฐ๋ง ์ฒ๋ฆฌํ๊ณ ์์ฒญ๋์ด ๋ง์์ง์๋ก
ํ๋ก์ธ์ค๋ ์ฆ๊ฐํ์ง๋ง ๋ณต์ ์ ๋ฉ๋ชจ๋ฆฌ์์ญ๊น์ง ๋ณต์ ๋์ด ๋์ํ๋ฏ๋ก
ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ ๊ณต์ ๊ฐ ์์ด ์์ ์
- Worker ๋ฐฉ์
Prefork ๋์๋ฐฉ์์ด 1๊ฐ์ ํ๋ก์ธ์ค๊ฐ 1๊ฐ์ ์ค๋ ๋๋ก ์ฒ๋ฆฌ๊ฐ ๋์๋ค๋ฉด
Worker ๋์๋ฐฉ์์ 1๊ฐ์ ํ๋ก์ธ์ค๊ฐ ๊ฐ๊ฐ ์ฌ๋ฌ ์ฐ๋ ๋๋ฅผ ์ฌ์ฉ
๋ ๋๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ๋ฉฐ PreFork๋ฐฉ์๋ณด๋ค ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ์ฌ์ฉ
Nginx : Event Driven ๋ฐฉ์์ผ๋ก ํ๋ก์ธ์ค๋ฅผ forkํ๊ฑฐ๋ ์ฐ๋ ๋๋ฅผ ์ฌ์ฉํ๋ ์ํ์น์๋ ๋ฌ๋ฆฌ
CPU์ ๊ด๊ณ์์ด ๋ชจ๋ IO๋ค์ ์ ๋ถ Event Listener๋ก ๋ฏธ๋ฃจ๊ธฐ ๋๋ฌธ์ ํ๋ฆ์ด ๋๊ธฐ์ง ์๊ณ
์๋ต์ด ๋น ๋ฅด๊ฒ ์งํ์ด ๋์ด 1๊ฐ์ ํ๋ก์ธ์ค๋ก ๋ ๋น ๋ฅธ ์์
์ด ๊ฐ๋ฅํ๋ค.
๋ฉ๋ชจ๋ฆฌ์ ์ธ ์ธก๋ฉด์์ Nginx๊ฐ System Resource๋ฅผ ์ ๊ฒ ์ฒ๋ฆฌํ๋ค.
์ ํฌ ์กฐ๋ cpu์ ๋ฉ๋ชจ๋ฆฌ ์์์ด ๋ง์ง ์๋ค๊ณ ์๊ฐ๋์ด ์์คํ ๋ฆฌ์์ค๊ฐ ์ ๊ฒ ์ฐจ์งํ๋ Nginx๋ก WEB์๋ฒ๋ฅผ ๊ตฌ๋ํ๊ธฐ๋ก ํ์ต๋๋ค.