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

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

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

  • ์ถ”๊ฐ€๋จ ๋ผ์šด๋“œ ๋กœ๋นˆ ๋ชจ๋“œ์—์„œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‘ ์„œ๋ฒ„ 192.168.0.100 ๋ฐ 192.168.0.101์— ๋กœ๋“œ๋ฅผ ๋ถ„์‚ฐํ•˜๊ณ  ๋‘ ๋ฒˆ์งธ ์„œ๋ฒ„์— ๋‘ ๋ฐฐ ๋งŽ์€ ์š”์ฒญ์„ ๋ณด๋‚ด๋ ค๋ฉด ๋‹ค์Œ ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    "์—…์ŠคํŠธ๋ฆผ": {
    "rr-lb": {
    "์„œ๋ฒ„": {
    "192.168.0.100:8080": { },
    "192.168.0.101:8080": { "๋ฌด๊ฒŒ": 2 }
    }
    }
    }

  • ๊ตฌํ˜„ ๊ธฐ๋Šฅ๊ณผ ์œ ์‚ฌํ•œ ๋ผ์šฐํŒ… ์š”์ฒญ์— ๋Œ€ํ•œ ์œ ์—ฐํ•œ ๊ทœ์น™์„ ์„ค์ •ํ•˜๋Š” ๊ธฐ๋Šฅ "try_files"nginx์—์„œ. ์ถ”๊ฐ€ ๊ฒฝ๋กœ๋Š” "fallback" ์ง€์‹œ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ์ด ์ง€์‹œ๋ฌธ์€ "share" ์ง€์‹œ๋ฌธ์„ ํ†ตํ•ด ์ •์˜๋œ ๊ฒฝ๋กœ์—์„œ ์š”์ฒญ๋œ ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด /data/www/ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ํŒŒ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ PHP ์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ํ˜ธ์ถœํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    {
    "๊ณต์œ ": "/๋ฐ์ดํ„ฐ/www/",
    "๋Œ€์ฒด": {
    "pass": "์‘์šฉํ”„๋กœ๊ทธ๋žจ/php"
    }
    }

    ์ค‘์ฒฉ๋œ "๋Œ€์ฒด" ๋ธ”๋ก์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํŒŒ์ผ์ด /data/www/์— ์—†์œผ๋ฉด /data/cache/์—์„œ ๊ฒ€์ƒ‰์„ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ๊ณ  ํŒŒ์ผ๋„ ์—†์œผ๋ฉด ์š”์ฒญ์„ ๋‹ค๋ฅธ ๋ฐฑ์—”๋“œ๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•ฉ๋‹ˆ๋‹ค.

    {
    "๊ณต์œ ": "/๋ฐ์ดํ„ฐ/www/",

    "๋Œ€์ฒด": {
    "๊ณต์œ ": "/๋ฐ์ดํ„ฐ/์บ์‹œ/",

    "๋Œ€์ฒด": {
    "ํ”„๋ก์‹œ": "http://127.0.0.1:9000"
    }
    }
    }

  • JSON ํ˜•์‹์œผ๋กœ ๋กœ๋“œ๋œ ๊ตฌ์„ฑ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” JavaScript ์Šคํƒ€์ผ ์ฃผ์„("//..." ๋ฐ "/* ... */")์„ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ”์ดํŠธ ์‹œํ€€์Šค ๋งˆ์ปค(UTF-8 BOM) ์ด๋Š” JSON์—์„œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ˆ˜๋™์œผ๋กœ ํŽธ์ง‘ํ•˜๋Š” ๊ฒฝ์šฐ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋งค์šฐ ํฐ ์š”์ฒญ์˜ ๋ณธ๋ฌธ์„ ๋””์Šคํฌ์— ํ”Œ๋Ÿฌ์‹œํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋ฅผ ์ค„์˜€์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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