Gunicorn: ์งˆ๋ฌธ: ๋ชจ๋“  ์ž‘์—…์ž๊ฐ€ ๋ฐ”์˜๊ณ  ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ฉ๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2019๋…„ 01์›” 28์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: benoitc/gunicorn

๋‚˜๋Š” ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์˜์‹ฌํ•ฉ๋‹ˆ๋‹ค.

  • ์ž‘์—…์ž๊ฐ€ ํ•ด์ œ๋  ๋•Œ๊นŒ์ง€ ์š”์ฒญ์ด ์ฐจ๋‹จ๋˜๊ฑฐ๋‚˜
  • ์š”์ฒญ์ด ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ์ง์ ‘ HTTP 504 ๊ฒŒ์ดํŠธ์›จ์ด ์‹œ๊ฐ„ ์ดˆ๊ณผ ์‘๋‹ต ๋˜๋Š” Nginx์™€ ๊ฐ™์€ ์—…์ŠคํŠธ๋ฆผ ํ”„๋ก์‹œ์—์„œ HTTP 504 ๊ฒŒ์ดํŠธ์›จ์ด ์‹œ๊ฐ„ ์ดˆ๊ณผ๋กœ ๋ณด๊ณ ๋œ ์—ฐ๊ฒฐ ๋‹ซ๊ธฐ)

(์ด ์งˆ๋ฌธ์„ Gunicorn ๋ฉ”์ผ๋ง ๋ฆฌ์ŠคํŠธ์— ๊ฒŒ์‹œํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๊ณ  ์žˆ์ง€๋งŒ ์ง์ ‘ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ์ง€์นจ์„ ์ฐพ์„ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Github ๋ฌธ์ œ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ๊ฒฝ๋กœ์ด๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.)

Question Discussion

๋ชจ๋“  3 ๋Œ“๊ธ€

๊ทธ๊ฒƒ์€ ์ข‹์€ ์žฅ์†Œ์ž…๋‹ˆ๋‹ค :) ์ด๋ฏธ ๊ฑฐ๊ธฐ์—์„œ ๋ช‡ ๊ฐ€์ง€ ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค : http://docs.gunicorn.org/en/stable/design.html

์–ด์จŒ๋“  ๊ทธ๊ฒƒ์€ ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. NGINX ๋’ค์— ์žˆ๋Š” Gunicorn์„ ์‚ฌ์šฉํ•˜๋ฉด ๋™๊ธฐํ™” ์ž‘์—…์ž๋„ ๋‹ค์ค‘ ์—ฐ๊ฒฐ์„ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Nginx ๋ฒ„ํผ์—์„œ ๋งŽ์€ ๋Œ€๊ธฐ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋™์•ˆ N ์š”์ฒญ์„ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค(์—ฌ๊ธฐ์„œ N์€ ์ž‘์—…์ž ์ˆ˜). ๋‚˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ 10K ์ด์ƒ์˜ ๋™์‹œ ์—ฐ๊ฒฐ๋กœ ๋งค์šฐ ํฐ ์›น ์‚ฌ์ดํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์šฉ๋„์˜ ๊ฒฝ์šฐ ๋น„๋™๊ธฐ ์ž‘์—…์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. NGINX ๋˜๋Š” ์—ฐ๊ฒฐ์„ ๋ฒ„ํผ๋งํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋ก์‹œ๋Š” ๊ณ„์†ํ•ด์„œ ์ด๋Ÿฌํ•œ ์ž‘์—…์ž๋ฅผ ๋•์ง€๋งŒ Gunicorn์€ ๋” ๋งŽ์€ ๋™์‹œ ์—ฐ๊ฒฐ์„ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ์ผ๋ถ€ ์—ฐ๊ฒฐ์„ ์˜ค๋žซ๋™์•ˆ ์—ด์–ด ๋‘˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ท€ํ•˜์˜ ์งˆ๋ฌธ์— ๋‹ต๋ณ€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

Gunicorn์— ๋Œ€ํ•ด์„œ๋งŒ ๋‹ต๋ณ€ํ•˜๋ ค๋ฉด:

๋ฐฑ๋กœ๊ทธ ์„ค์ • ์€ OS ์ˆ˜์‹  ๋ฐฑ๋กœ๊ทธ์˜ ๊นŠ์ด๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฑ๋กœ๊ทธ๊ฐ€ ๊ฐ€๋“ ์ฐจ๋ฉด OS์—์„œ ์š”์ฒญ์„ ๊ฑฐ๋ถ€ํ•˜๊ณ  ๊ฒŒ์ดํŠธ์›จ์ด์— ์—…์ŠคํŠธ๋ฆผ ์—ฐ๊ฒฐ ์‹คํŒจ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ฐฑ๋กœ๊ทธ๊ฐ€ ๊ฐ€๋“ ์ฐจ์ง€ ์•Š์œผ๋ฉด OS์—์„œ ์—ฐ๊ฒฐ์„ ์—ด์ง€๋งŒ Gunicorn ์ž‘์—…์ž๊ฐ€ ์š”์ฒญ์„ ์ˆ˜๋ฝํ•  ์ค€๋น„๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ Gunicorn์—์„œ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Gunicorn์ด ์š”์ฒญ์„ ์‹ ์†ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฒŒ์ดํŠธ์›จ์ด๊ฐ€ ์—…์ŠคํŠธ๋ฆผ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—…์ŠคํŠธ๋ฆผ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋งŽ๊ณ  Gunicorn ์•ž์—์„œ ์—ญ๋ฐฉํ–ฅ ํ”„๋ก์‹œ๋กœ ์‹คํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ ํ”„๋ก์‹œ๊ฐ€ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์žฅ์•  ์กฐ์น˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐฑ๋กœ๊ทธ๋ฅผ ๋‚ฎ์ถ”๊ณ  ์‹ถ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณ ๋งˆ์›Œ์š”. ์ด๋Ÿฌํ•œ ๋‹ต๋ณ€์ด ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰