[Nginx] Nginx๋ž€?

์ง€ํ˜œ์˜ Devlog ๐Ÿ“šยท2021๋…„ 10์›” 11์ผ
0
post-thumbnail

AWS EC2์— React๋ฅผ Nginx๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌํ•˜๋ฉด์„œ, Nginx๋ฅผ ์ฒ˜์Œ ์‚ฌ์šฉํ•ด ๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ Nginx์— ๋Œ€ํ•˜์—ฌ ์ •๋ฆฌํ•ด ๋ณด๊ณ ์ž ํ•œ๋‹ค.

๊ณ ๊ณ ~๐Ÿ•บ


๐Ÿค” Nginx๋ž€?

  • Nginx๋Š” ๊ฒฝ๋Ÿ‰ ์›น ์„œ๋ฒ„์ด๋‹ค.
    ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์„ ๋ฐ›์•˜์„ ๋•Œ ์š”์ฒญ์— ๋งž๋Š” ์ •์  ํŒŒ์ผ์„ ์‘๋‹ตํ•ด ์ฃผ๋Š” HTTP Web Server๋กœ ํ™œ์šฉ๋˜๊ธฐ๋„ ํ•˜๊ณ , Reverse Proxy Server๋กœ ํ™œ์šฉํ•˜์—ฌ WAS ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋กœ ํ™œ์šฉ๋˜๊ธฐ๋„ ํ•œ๋‹ค.

๐Ÿง Nginx ํ”„๋กœ์„ธ์Šค

  • Nginx๋Š” Event-Driven ๊ตฌ์กฐ๋กœ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ๊ฐœ ๋˜๋Š” ๊ณ ์ •๋œ ํ”„๋กœ์„ธ์Šค๋งŒ ์ƒ์„ฑํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ณ , ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญ๋“ค์„ Concurrency ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„์˜ ๊ทธ๋ฆผ์—์„œ ๋ณด์ด๋“ฏ์ด Nginx๋Š” ์ƒˆ๋กœ์šด ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋”๋ผ๋„ ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ ์ƒ์„ฑ ๋น„์šฉ์ด ์กด์žฌํ•˜์ง€ ์•Š๊ณ , ์ ์€ ์ž์›์œผ๋กœ๋„ ํšจ์œจ์ ์ธ ์šด์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๋Ÿฌํ•œ Nginx์˜ ์žฅ์  ๋•๋ถ„์— ๋‹จ์ผ ์„œ๋ฒ„์—์„œ๋„ ๋™์‹œ์— ๋งŽ์€ ์—ฐ๊ฒฐ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
    ์ฆ‰, Nginx๋Š” ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์€ ์›น์‚ฌ์ดํŠธ์˜ ํ™•์žฅ์„ฑ์„ ์œ„ํ•ด ์„ค๊ณ„ํ•œ ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ์˜ ์›น์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค.

๐Ÿ˜Ž Nginx ์‚ฌ์šฉ ์ด์œ 

  • ์œ„์—์„œ ์„ค๋ช…ํ–ˆ๋“ฏ์ด, Nginx๋Š” ๋น„๋™๊ธฐ์‹ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ์ค‘์‹ฌ์˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. Front-end ์„œ๋น„์Šค๊ฐ€ ํฌ๊ฒŒ ์„ฑ์žฅํ•˜๋ฉด์„œ ์›น ๊ธฐ๋ฐ˜์˜ ๋™์‹œ ์ฒ˜๋ฆฌ๊ฐ€ ๋งค์šฐ ์ค‘์š”ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. Nginx๋Š” ๊ฒฝ๋Ÿ‰์˜ ์ž์› ํ™œ์šฉ๊ณผ ๋ฌผ๋ฆฌ์ ์ธ ํ•˜๋“œ์›จ์–ด๋กœ ์‰ฝ๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ์ •์ ์ธ ์ปจํ…์ธ ๋“ค์„ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ๋™์  ์ฒ˜๋ฆฌ๋ฅผ ๋ณ„๋„๋กœ ๋‹ด๋‹นํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์Šคํƒ๋“ค๊ณผ ์—ฐ๊ณ„ํ•ด์„œ ๊ณ ์„ฑ๋Šฅ ์„œ๋ฒ„๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•˜๋‹ค๊ณ  ์•Œ๋ ค์กŒ๋‹ค. ๋˜ํ•œ Nginx๋Š” ํ”„๋ก์‹œ ์„œ๋ฒ„ ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•œ๋‹ค.

๐Ÿ™ƒ Apache vs. Nginx

  • Apache ํŠน์ง•

    • ์Šค๋ ˆ๋“œ/ํ”„๋กœ์„ธ์Šค ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ๋กœ, ์š”์ฒญ ํ•˜๋‚˜๋‹น ์Šค๋ ˆ๋“œ ํ•˜๋‚˜๊ฐ€ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ตฌ์กฐ
    • ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์œผ๋ฉด ๋งŽ์€ ์“ฐ๋ ˆ๋“œ ์ƒ์„ฑ, ๋ฉ”๋ชจ๋ฆฌ ๋ฐ CPU ๋‚ญ๋น„๊ฐ€ ์‹ฌํ•จ
    • ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ: ํ•˜๋‚˜์˜ ํด๋ผ์ด์–ธํŠธ๋ผ๋Š” ๊ตฌ์กฐ
  • Nginx ํŠน์ง•

    • ๋น„๋™๊ธฐ Event-Driven ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ
    • ๋‹ค์ˆ˜์˜ ์—ฐ๊ฒฐ์„ ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ
    • ๋Œ€๋ถ€๋ถ„์˜ ์ฝ”์–ด ๋ชจ๋“ˆ์ด Apache๋ณด๋‹ค ์ ์€ ๋ฆฌ์†Œ์Šค๋กœ ๋” ๋น ๋ฅด๊ฒŒ ๋™์ž‘ ๊ฐ€๋Šฅ
    • ๋” ์ž‘์€ ์Šค๋ ˆ๋“œ๋กœ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ๋“ค์„ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

๐Ÿ™„ ๊ฒฐ๋ก 

  • Nginx์— ๋Œ€ํ•˜์—ฌ ์ •๋ฆฌํ•ด ๋ณด๋ฉด์„œ Nginx๋ฅผ ์ฒ˜์Œ ์‚ฌ์šฉํ•œ์ง€ ์–ผ๋งˆ ๋˜์ง€ ์•Š์•„, ์•„์ง Nginx์— ๋Œ€ํ•ด ์•„๋Š” ์ ์ด ๋งŽ์ด ๋ถ€์กฑํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ๋˜ํ•œ, Nginx๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ์žฅ์ ๋“ค์„ ํ™œ์šฉํ•ด์„œ ๋” ๊ฒฌ๊ณ ํ•œ ์›น์‚ฌ์ดํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค. ์ด ๊ธ€์€ ์ถ”ํ›„ Nginx๋ฅผ ๋” ์‚ฌ์šฉํ•˜๊ณ , Apache๋„ ์‚ฌ์šฉํ•ด ๋ณด๋ฉด์„œ ์—…๋ฐ์ดํŠธํ•  ์˜ˆ์ •์ด๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€