๊ฐ์
๋ฆฌ๋ฒ์ค ํ๋ก์ ์๋ฒ๋ฅผ ๊ตฌ์ถํ๋ฉด์ ๋๋ฆฌ ์ฐ์ด๋ ์น์๋ฒ๋ก Apache HTTP Server, Nginx ๊ฐ ๋๋ฆฌ ์ฐ์ด์ง๋ง, ํ๋์ ์์๋ Nginx ์ ์์ฅ ์ ์ ์จ์ด Apache HTTP Server ๋ฅผ ๋ฐ์ด ๋์ด์ ์์ฅ ์ ์ ์จ์ด ๋ ๋์ Nginx ๋ฅผ ์ฌ์ฉํ๋ค.
Nginx ๋ ์ด๋ป๊ฒ Apache HTTP Server ์ ์ ์ ์จ์ ๋ฐ์ด ๋๊ฒ ๋๊ณ , ๋์ ์ฐจ์ด์ ์ ๋ฌด์์ผ๊น ํ์ตํด ๋ณด์๋ค.
Apache HTTP Server
Apache HTTP Server(์ดํ ์ํ์น ์๋ฒ)๋ 1995๋ ๋ง๋ค์ด์ก๋๋ฐ, ์ํ์น ์๋ฒ์ ๋ด๋ถ ๋์์ ๋ณด๋ฉด ์์ฒญ์ด ๋ค์ด ์ค๋ฉด ์ปค๋ฅ์ ์ ํ์ฑํ๊ธฐ ์ํด ํ๋ก์ธ์ค๋ฅผ ์๋ก ์์ฑํ๋ค.
ํ๋ก์ธ์ค์ ์์ฑํ๋ ๊ฒ์ด ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฌ๋ ์์ ์ด๋ ์์ฒญ์ด ๋ค์ด์ค๊ธฐ ์ ์ ํ๋ก์ธ์ค๋ฅผ ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋๋ prefork ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
๊ทธ๋์ ํด๋ผ์ด์ธํธ๋ก ๋ถํฐ ์๋ก์ด ์์ฒญ์ด ์ค๋ฉด ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ ธ๋ค ์ฌ์ฉํ๊ณ , ์ฌํ์ฉํ๋ค.
๋ง์ฝ ๋ง๋ค์ด๋ ํ๋ก๋ ์ค๊ฐ ๋ชจ๋ ํ ๋น๋์์ผ๋ฉด ์ถ๊ฐ์ ์ผ๋ก ํ๋ก์ธ์ค๋ฅผ ๋ง๋ค์๋ค.
์ํ์น ์๋ฒ๋ ์ฌ๋ฌ ๋ชจ๋์ ๋ง๋ค์ด์ ์๋ฒ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์๋ ์์๋ค. ์ด์ ๋ฐ๋ผ ํ์ฅ์ฑ์ด ๋ฐ์ด ๋ฌ๋ค.
C10K
ํ์ง๋ง ์๊ฐ์ด ์ง๋๋ฉด์ ์ธํฐ๋ท์ด ๋ฐ๋ฌํ๊ณ , ํธ๋ํฝ์ด ๋ง์์ง๋ฉด์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
์์ C1OK ๋ฌธ์ ๋ผ๊ณ ๋ ํ๋๋ฐ, Connection 10,000๊ฐ์ ๋ฌธ์ ๋ผ๋ ์ด๋ฆ์ ์ค์ธ ํํ์ด๋ค. ๋งค๋ฒ ์ฐ๊ฒฐ์ ์๋ฆฝํ๋ ๊ฒ์ด ์ค๋ฒํค๋๋ ์๊ณ , ๋ฆฌ์์ค๋ฅผ ๋ถํ์ํ๊ฒ ๋ญ๋นํ๋ ๊ฒ์ด ๋ ์ ์์ด์ ์ฐ๊ฒฐ์ ์๋ฆฝ์ ์ฌํ์ฉํ๊ธฐ ์ํด keep-alive ํค๋๋ฅผ ์จ์ ์ฐ๊ฒฐ์ ์ง์ํด ๋๊ธฐ๋ ํ๋ค. ํด๋ผ์ด์ธํธ ์๊ฐ ๋ง์์ง๋ฉด ๊ทธ๋งํผ ๋์์ ์ฐ๊ฒฐ๋์ด ์๋ ์ปค๋ฅ์ ์๋ ๋๋์ฑ ๋ง์์ง๊ณ , ๊ทธ๋ ๊ฒ ๋์ ์ปค๋ฅ์ ์๊ฐ 10000๋จ์๋ก ๋์ด๊ฐ๋ ์๊ฐ, ์๋ฒ๋ ๋ ์ด์ ์ปค๋ฅ์ ์ ํ์ฑํ์ง ๋ชปํ๋ ์ํฉ์ ๋์ธ๋ค.
์ด์ ๋ ์ํ์น ์๋ฒ์ ๊ตฌ์กฐ ๋๋ฌธ์ด๋ค. ์์ ๋งํ๋ค์ํผ ์ํ์น ์๋ฒ๋ ์์ฒญ์ด ์ค๋ฉด ํ๋ก์ธ์ค๋ฅผ ์๋กญ๊ฒ ํ ๋นํ๋ค๊ณ ํ๋ค. ์์ฒญ์ด ๋ง์์ง๋ฉด ๊ทธ๋งํผ ํ์ฑ๋๋ ํ๋ก์ธ์ค๋ ๋ง์์ง๊ณ ์ด๋ ๊ณง ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ํ์์ผ๋ก ์ด์ด์ง๋ค.
ํ๋ก์ธ์ค๋ ๋ ๋ฆฝ์ ์ธ ์ฃผ์ ๊ณต๊ฐ์ ๊ฐ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ํ ์ฌ๋ฌ๊ฐ์ง ๊ธฐ๋ฅ์ ์ฝ๊ฒ ์ถ๊ฐํ ์ ์๋, ๋ชจ๋ ์ถ๊ฐ๋ ํ๋ก์ธ์ค๊ฐ ์ฐจ์งํ๋ ๋ฆฌ์์ค์ ์์ ๋๋ ค ํ๋ก๊ทธ๋จ์ ๋ฌด๊ฒ๊ฒ ๋ง๋ค์๋ค.
๋ง์ ์ปค๋ฅ์ ์์ ์์ฒญ์ด ๋ค์ด์ค๊ธฐ ์์ํ๋ฉด CPU ๋ ๊ณ์ํด์ ํ๋ก์ธ์ค๋ฅผ ๋ฐ๊ฟ๊ฐ๋ฉฐ ์ผ์ ํด์ผํ๋๋ฐ, ์ด๋ ์ปจํ ์คํธ ์ค์์นญ์ด ์ผ์ด๋๊ฒ ๋๊ณ , ํ๋ก์ธ์ค์ ์ปจํ ์คํธ ์ค์์นญ์ ๋ง์ ์ค๋ฒํค๋๋ฅผ ๋ถ๋ฌ์ผ์ผํจ๋ค.
์ด์ฒ๋ผ ์๋ง์ ๋์ ์ปค๋ฅ์ ์ ๊ฐ๋นํ๊ธฐ์ ์ํ์น ์๋ฒ์ ๊ตฌ์กฐ๊ฐ ์ ํฉํ์ง ์์๋ค.
Nginx
Nginx๋ ์ด์ฐฝ๊ธฐ ์ํ์น ์๋ฒ๋ฅผ ๋์ฒดํ๋ ค๊ณ ๋์จ ๊ฒ์ ์๋์๋ค. ์ํ์น ์๋ฒ๋ฅผ ๋ณด์ํ์ฌ ํจ๊ป ์ฌ์ฉํ๊ธฐ ์ํด ๋ง๋ค์ด์ก๋ค.
์ํ์น ์๋ฒ ๊ฐ๋นํด์ผํ๋ ์๋ง์ ์ปค๋ฅ์ ์ ๋์ ์ ์ง์ํค๊ธฐ ์ํด ๋์๋ค.
์ด๊ฒ์ด ๊ฐ๋ฅํ ์ด์ ๋ ์ด๋ฒคํธ ๊ธฐ๋ฐ ์ํคํ ์ฒ ๋๋ถ์ด๋ค.
๋จผ์ Nginx์ ๊ตฌ์กฐ๋ฅผ ํ ๋ฒ ์ดํด๋ณด๋ฉด ๊ฐ์ฅ ๋จผ์ ๋ง์คํฐ ํ๋ก์ธ์ค๋ผ๋ ๊ฒ์ด ์๋ค. ์ค์ ํ์ผ์ ์ฝ๊ณ , ์ค์ ์ ๋ง๊ฒ ์์ปคํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ ํ๋ก์ธ์ค๋ค.
์ค์ ๋ก ์์ ์ ํ๋ ํ๋ก์ธ์ค๋ ์์ปค ํ๋ก์ธ์ค์ด๋ค. ํ๋์ ์์ปค ํ๋ก์ธ์ค์ ์ฌ๋ฌ๊ฐ์ ์ปค๋ฅ์ ํ์ฑ๊ณผ ์๋ก์ด ์์ฒญ ๋ด๋น์ด ๊ฐ๋ฅํ๋ฐ, Nginx์์๋ ์ด๋ฐ ์ปค๋ฅ์ ํ์ฑ, ์ปค๋ฅ์ ์ ๊ฑฐ ๊ทธ๋ฆฌ๊ณ ์๋ก์ด ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ ์ด๋ฒคํธ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ์ด๋ฒคํธ๋ค์ OS ์ปค๋์ด ํ ํ์์ผ๋ก ์์ปค ํ๋ก์ธ์ค์๊ฒ ์ ๋ฌํด์ค๋ค.
์ด ์ด๋ฒคํธ๋ ํ์ ๋ด๊ธด ์ํ์์ ์์ปค ํ๋ก์ธ์ค๊ฐ ์ฒ๋ฆฌํ ๋๊น์ง ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ๋๊ธฐํ๊ณ ์์ปค ํ๋ก์ธ์ค๋ ํ๋์ ์ค๋ ๋๋ก ์ด๋ฒคํธ๋ฅผ ๊บผ๋ด์ ์ฒ๋ฆฌํด ๋๊ฐ๋ค.
์ํ์น ์๋ฒ๋ ์์ฒญ์ด ์๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ก์๋จน๋ ํ๋ก์ธ์ค๋ค์ด ๋ฐฉ์น๋์๋๋ฐ, ์์ง์์ค๋ ์์ปค ํ๋ก์ธ์ค๋ฅผ ์ด๋ฒคํธ ๊ธฐ๋ฐ ๊ตฌ์กฐ๋ก ์ฌ์ง ์๊ณ ์ผ์ ํ๋ค๋ ์ฅ์ ์ด ์๋ค.
์ด๋ ์์ฒญ์ค์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ์์ ์ ์์ฒญ ์ฒ๋ฆฌ ๋์ ๋ธ๋กํน์ด ๋๊ธฐ ๋๋ฌธ์ ๋ค ์์ฒญ๋ค์ด ๋น ๋ฅด๊ฒ ์งํ๋์ง ์๋ ๋ถ์์ฌ๊ฐ ์ผ์ด๋ ์ ์๋ค. ๊ทธ๋ฐํ ์ ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์์ปค ํ๋ก์ธ์ค๋ ์ง๊ธ ์ฒ๋ฆฌํ ์์ฒญ์ด ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ๊ฒ ๊ฐ๋ค ์ถ์ผ๋ฉด ํด๋น ์ค๋ ๋ ํ์ ๊ทธ ์ด๋ฒคํธ๋ฅผ ์์ํ๊ณ , ํ ์์ ์๋ ๋ค๋ฅธ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ฌ ๊ฐ๋ค.
์ด๋ฐ ์์ปค ํ๋ก์ธ์ค๋ ๋ณดํต CPU์ ์ฝ์ด ์ ๋งํผ ์์ฑํ๋ค. ์ด๋ฌ๋ฉด ํ๋ก์ธ์ค ์ปจํ ์คํธ ์ค์์นญ์ด ์ผ์ด๋๋ ํ์๊ฐ ๋ํญ ์ค์ด๋ ๋ค. CPU์ ์ค๋ฒํค๋๋ฅผ ์ค์ผ ์ ์๋ค๋ ๊ฒ์ด๋ค.
2008๋ ์ค๋งํธํฐ์ด ๋ณด๊ธ๋๋ฉด์ ์์์ด ๋ง์ ํธ๋ํฝ์ด ์๊ฒจ๋๊ฒ ๋๊ณ , ์ด๋ฅผ ๊ฐ๋นํ ์ ์๋ ์์ง์์ค๊ฐ ๊ฐ๊ด๋ฐ๊ธฐ ์์ํ๋ค.
์ฅ๋จ์ ์ ๋ฆฌ
์ํ์น ์๋ฒ | ์์ง์์ค | |
์ํคํ ์ฒ | ํ๋ก์ธ์ค ๊ธฐ๋ฐ ๋ชจ๋ธ | ์ด๋ฒคํธ ๊ธฐ๋ฐ ๋ชจ๋ธ |
์์ ์ฑ | ๋๋ค(๊ฐ ์์ฒญ์ ๋ ๋ฆฝ๋ ํ๋ก์ธ์ค์์ ์ฒ๋ฆฌ๋๋ฏ๋ก ์์ ์ฑ์ด ๋๋ค. ) | ๋น๊ต์ ๋ฎ๋ค(ํ ์์ปค ํ๋ก์ธ์ค์์ ์ฌ๋ฌ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ํ ์์ฒญ์ด ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ฉด ๋ค๋ฅธ ์์ฒญ์๋ ์ํฅ์ ๋ผ์น ์ ์๋ค.) |
์ฑ๋ฅ | ๋ง์ ๋์ ์์ฒญ์ ์ฒ๋ฆฌํ ๋ ๋ฌด์ํ ๋ง์ ์ปจํ ์คํธ ์ค์์นญ์ด ์ผ์ด๋๋ฏ๋ก ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ ์ ์๋ค. | ์ด๋ฒคํธ ๊ธฐ๋ฐ ๋ชจ๋ธ ๋๋ถ์ ๋ง์ ๋์ ์์ฒญ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค. |
๋ฉ๋ชจ๋ฆฌ | ์์ฒญ๋ง๋ค ํ๋ก์ธ์ค๋ฅผ ํ ๋นํ๋ ๊ตฌ์กฐ๋ผ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค. | ์ ์ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ ๋ค. |
ํ์ฅ์ฑ | ์ฌ๋ฌ ๋ชจ๋์ ์ถ๊ฐํ ์ ์์ด์ ํ์ฅ์ฑ์ ์ฉ์ดํ๋ค. ์์ง์์ค์ ๋นํด ์ ๊ณต๋๋ ๋ชจ๋์ด ๋ง๋ค. | ๋ฐํ์์ ๋ชจ๋์ ๋์ ์ผ๋ก ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ์ ์๋ค.(์์ปค ํ๋ก์ธ์ค๊ฐ ์ฌ๋ฌ ์์ฒญ์ ๋ด๋นํ๊ธฐ์ ๊ธฐ๋ฅ ์ถ๊ฐ๋ฅผ ํ๋ ค๊ณ ํ๋ฉด ์์ปคํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ๊ฒ ๋์ด ์ง์ ๋ชจ๋์ ๋ง๋ค๊ธฐ ๊น๋ค๋กญ๋ค.) |
์ค์ | Apache์ ์ค์ ํ์ผ(httpd.conf ๋ฑ)์ ๋ณต์กํ ์ ์์ผ๋ฉฐ, ๊ณ ๊ธ ๊ธฐ๋ฅ ์ค์ ์ ์ํด ์์ธํ ๊ตฌ์ฑ์ด ํ์ํ ์ ์๋ค. | Nginx์ ์ค์ ํ์ผ(nginx.conf ๋ฑ)์ ๋น๊ต์ ๊ฐ๋จํ๊ณ ์ฝ๊ธฐ ์ฝ๋ค. |
์ฉ๋ | ๋์ ์ปจํ
์ธ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค(Apache๋ PHP, Python, Perl ๋ฑ ๋์ ์ฝํ
์ธ ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ชจ๋๊ณผ์ ํธํ์ฑ์ด ๋ฐ์ด๋๋ค.) ๋ชจ๋์ ํตํด ๋ณต์กํ ์ค์ ๋ฐ ๊ธฐ๋ฅ์ ์ฐ์ธ๋ค. |
์ฃผ๋ก ์ ์ ์ปจํ
์ธ ์ฒ๋ฆฌ(Nginx๋ ์ ์ ์ฝํ
์ธ (์ด๋ฏธ์ง, CSS, JavaScript ๋ฑ)๋ฅผ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์ ๊ณตํ ์ ์๋ค.) ๋ฆฌ๋ฒ์ค ํ๋ก์ ๋ฐ ๋ก๋ ๋ฐธ๋ฐ์: Nginx๋ ๋ฆฌ๋ฒ์ค ํ๋ก์ ๋ฐ ๋ก๋ ๋ฐธ๋ฐ์๋ก์ ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ฐํํ๋ค.(๋์ ์ค์ ๋ณ๊ฒฝ) |
์ฐธ๊ณ
https://www.youtube.com/watch?v=6FAwAXXj5N0
'Web programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
NGINX ๋ฆฌ๋ฒ์ค ํ๋ก์ ์๋ฒ ์ค์ ํธ๋ฌ๋ธ ์ํ (0) | 2024.02.27 |
---|---|
SSL Termination ์ ์ํด NginX ๋ก ๋ฆฌ๋ฒ์ค ํ๋ก์ ์๋ฒ ๊ตฌ์ถํ๊ธฐ (0) | 2024.02.20 |
CORS ์๋ฌ ๊ฐ๋ ๊ณผ ํด๊ฒฐ๋ฒ (Spring MVC, Spring Security) (0) | 2023.12.20 |
Web programming : RESTful URL ์ค๊ณ ๊ท์น (0) | 2023.12.13 |
Web programming : RESTful API ๋ (0) | 2023.12.12 |
๋๊ธ