Gunicorn: gunicorn์ด ์‹คํ–‰ํ•˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์ธ์ˆ˜๋ฅผ ์–ด๋–ป๊ฒŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2010๋…„ 12์›” 09์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: benoitc/gunicorn

์ง€๊ธˆ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์›น ์•ฑ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

$ gunicorn webapp:application

webapp.py ๋‚ด๋ถ€์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ธฐ๋Šฅ์— ์ผ๋ถ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์›น ์•ฑ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ์กฐ์ •ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ํŒŒ์ผ๋กœ gunicorn์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋ฌธ์„œ๋ฅผ ์ฝ์—ˆ์ง€๋งŒ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์„ ์‹œ๋„ํ–ˆ๊ณ  ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

$ gunicorn webapp:application dev.cfg

๋‚ด๊ฐ€ ๋งํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ gunicorn์€ "application dev.cfg"๋ผ๋Š” ์ด๋ฆ„์˜ ์ฝœ๋Ÿฌ๋ธ”์„ ์ฐพ์œผ๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ์•„์ด๋””์–ด?

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชจ๋“ˆ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

def load_app(cfg_file):
    cfg = load_app_config(cfg_file)
    return my_app(cfg)

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์•ฑ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

$ gunicorn 'webapp:load_app("/path/to/my_config.ini")'

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

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชจ๋“ˆ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

def load_app(cfg_file):
    cfg = load_app_config(cfg_file)
    return my_app(cfg)

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์•ฑ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

$ gunicorn 'webapp:load_app("/path/to/my_config.ini")'

๋Œ€๋‹ตํ–ˆ๋‹ค.

@benoitc ๋ช‡ ๋…„์ด

@pellunutty ์ง€๊ธˆ์€ ์ •๋‹ต์ด ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํด๋ž˜์Šค(์˜ˆ: BaseApplication ) ์ค‘ ํ•˜๋‚˜๋ฅผ ํ•˜์œ„ ํด๋ž˜์Šค๋กœ ๋ถ„๋ฅ˜ํ•˜๊ณ  load_config ๋ฉ”์„œ๋“œ์—์„œ ๊ด€๋ จ ์ •๋ณด๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ œ๋Š” http://docs.gunicorn.org/en/stable/custom.html ์„ ์ฐธ์กฐ

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