NGINX ์œ ๋‹› 1.18.0 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ๋ฆด๋ฆฌ์Šค

์ผ์–ด๋‚ฌ๋‹ค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ๋ฆด๋ฆฌ์Šค NGINX ์œ ๋‹› 1.18, ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด(Python, PHP, Perl, Ruby, Go, JavaScript/Node.js ๋ฐ Java)๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์†”๋ฃจ์…˜์ด ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. NGINX ์œ ๋‹›์€ ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์—ฌ๋Ÿฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋™์‹œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ตฌ์„ฑ ํŒŒ์ผ์„ ํŽธ์ง‘ํ•˜๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•  ํ•„์š” ์—†์ด ์‹คํ–‰ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” C๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, ๋ฐฐํฌ์ž Apache 2.0์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. NGINX Unit์˜ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐœํ‘œ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ œ.

์ƒˆ ๋ฒ„์ „์—์„œ:

  • ๊ฒฉ๋ฆฌ ๋ชจ๋“œ ๊ตฌํ˜„ "rootfsยป ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ํŠน์ • ๋ถ€๋ถ„์—๋งŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ‘œ์‹œ๋˜๋Š” FS ๋ฃจํŠธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด, ์•ˆ์ „ํ•˜์ง€ ์•Š์€ chroot() ์‹œ์Šคํ…œ ํ˜ธ์ถœ๊ณผ ๋‹ฌ๋ฆฌ, ๋‹จ์ˆœํžˆ FS ๋ฃจํŠธ๋ฅผ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋‹ค์Œ์—์„œ ์‚ฌ์šฉ๋œ ๊ฒƒ๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ˆ˜์ค€์—์„œ ๊ฒฉ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”ivot_root() ํ˜ธ์ถœ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ. ๋˜ํ•œ, ์ง์ ‘ ์ง€์ •๋œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋””๋ ‰ํ„ฐ๋ฆฌ ์™ธ์—๋„ Unit์€ ๋ชจ๋“  ์–ธ์–ด๋ณ„ ์ข…์†์„ฑ์„ ๊ฒฉ๋ฆฌ๋œ ํŒŒ์ผ ์‹œ์Šคํ…œ ํŠธ๋ฆฌ์— ์ž๋™์œผ๋กœ ๋งˆ์šดํŠธํ•ฉ๋‹ˆ๋‹ค(์ œํ•œ๋œ ์ˆ˜์˜ ์–ธ์–ด์—์„œ๋งŒ ์ž‘๋™).

    {
    "์œ ํ˜•": "ํŒŒ์ด์ฌ 2.7",
    "๊ธธ": "/",
    "์ง‘": "/venv/",
    "๋ชจ๋“ˆ": "wsgi",
    "๊ฒฉ๋ฆฌ": {
    "rootfs": "/var/app/sandbox/"
    }
    }

  • ์ƒˆ๋กœ์šด ์„น์…˜ "์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ์—์„œ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๊ตฌ์„ฑํ‘œ๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ธฐ๋Šฅ๋ชฉํ‘œ". ์˜ˆ๋ฅผ ๋“ค์–ด, ๋Œ€๋ถ€๋ถ„์˜ ์š”์ฒญ์ด ์š”์ฒญ๋œ URI์— ๊ด€๊ณ„์—†์ด index.php๋ฅผ ํ†ตํ•ด ์ฒ˜๋ฆฌ๋˜๊ณ  ๊ด€๋ฆฌ์ž ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์Šคํฌ๋ฆฝํŠธ ํ˜ธ์ถœ๋กœ ์ง์ ‘ ์—ฐ๊ฒฐ๋˜๋Š” ๊ฒฝ์šฐ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ˜ผํ•ฉ ์ฃผ์†Œ ์ง€์ • ์ฒด๊ณ„์˜ ์„ค์ •์„ ๋‹จ์ˆœํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ์ด๋Ÿฌํ•œ ์„ค์ •์ด ๋‘ ๊ฐœ์˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ •์˜๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด์กŒ์ง€๋งŒ ์ด์ œ๋Š” ํ•˜๋‚˜๋งŒ ์žˆ์–ด๋„ ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    {
    "wp_index": {
    "์œ ํ˜•": "php",
    "์‚ฌ์šฉ์ž": "wp_user",
    "๊ทธ๋ฃน": "wp_user",
    "๋ฃจํŠธ": "/๊ฒฝ๋กœ/to/wordpress/",
    "์Šคํฌ๋ฆฝํŠธ": "index.php"
    },

    "wp_direct": {
    "์œ ํ˜•": "php",
    "์‚ฌ์šฉ์ž": "wp_user",
    "๊ทธ๋ฃน": "wp_user",
    "๋ฃจํŠธ": "/๊ฒฝ๋กœ/to/wordpress/"
    }
    }

    ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

    {
    "WP": {
    "์œ ํ˜•": "php",
    "์‚ฌ์šฉ์ž": "wp_user",
    "๊ทธ๋ฃน": "wp_user",

    "๋Œ€์ƒ": {
    "์ƒ‰์ธ": {
    "๋ฃจํŠธ": "/๊ฒฝ๋กœ/to/wordpress/",
    "์Šคํฌ๋ฆฝํŠธ": "index.php"
    },

    "์ง์ ‘": {
    "๋ฃจํŠธ": "/๊ฒฝ๋กœ/to/wordpress/"
    }
    }
    }
    }

  • ์ถ”๊ฐ€ ์ง€์› ์ฝ”๋”ฉ "uri" ๋ฐ "arguments" ์ผ์น˜ ์˜ต์…˜๊ณผ "pass" ์˜ต์…˜์— "%xx" ํ˜•์‹์˜ ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€