NGINX ์ ๋ 1.24 ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๊ฐ ์ถ์๋์์ผ๋ฉฐ, ๊ทธ ์์์ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด(Python, PHP, Perl, Ruby, Go, JavaScript/Node.js ๋ฐ Java)๋ก ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ์ ์๋ ์๋ฃจ์ ์ด ๊ฐ๋ฐ๋๊ณ ์์ต๋๋ค. . NGINX ์ ๋์ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์์ ์คํํ ์ ์์ผ๋ฉฐ, ๊ตฌ์ฑ ํ์ผ์ ํธ์งํ๊ณ ๋ค์ ์์ํ ํ์ ์์ด ์คํ ๋งค๊ฐ๋ณ์๋ฅผ ๋์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ฝ๋๋ C๋ก ์์ฑ๋์์ผ๋ฉฐ Apache 2.0 ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค. ์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค ๋ฐํ๋ฅผ ํตํด NGINX Unit์ ๊ธฐ๋ฅ์ ๋ํด ์์๋ณผ ์ ์์ต๋๋ค.
์ ๋ฒ์ ์์:
- Ruby 3.0๊ณผ์ ํธํ์ฑ์ด ๋ณด์ฅ๋ฉ๋๋ค.
- MIME ์ ํ์ ๊ธฐ๋ณธ ๋ชฉ๋ก์ PHP๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- OpenSSL ๋ช ๋ น์ ํตํด TLS ์ฐ๊ฒฐ์ ๋ํ ์์ ์ค์ ์ ์ง์ ํ ์ ์์ต๋๋ค.
- MIME ์ ํ์ ๊ธฐ๋ฐ์ผ๋ก ์ ์ ํ์ผ ์ฒ๋ฆฌ๋ฅผ ์ ํํ๊ธฐ ์ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ ๋ก๋๋๋ ํ์ผ์ ์ด๋ฏธ์ง์ ๋น๋์ค๋ก๋ง ์ ํํ๋ ค๋ฉด ๋ค์์ ์ง์ ํ ์ ์์ต๋๋ค. { โshareโ: โ/www/dataโ, โtypesโ: [ โimage/*โ, โvideo/*โ ] }
- chroot๋ฅผ ์ฌ์ฉํ๊ณ , ๊ธฐํธ ๋งํฌ ์ฌ์ฉ์ ์ฐจ๋จํ๊ณ , ์ ์ ํ์ผ์ ์ ๊ณตํ ๋ ๊ฐ๋ณ ์์ฒญ๊ณผ ๊ด๋ จ๋ ๋ง์ดํธ ์ง์ ์ ๊ต์ฐจ๋ฅผ ๊ธ์งํ๋ ๊ธฐ๋ฅ์ด ๊ตฌํ๋์์ต๋๋ค. { "๊ณต์ ": "/www/data/static/", "chroot": "/www/data/", "follow_symlinks": false, "traverse_mounts": false }
- Node.js์์ "http" ๋ฐ "websocket" ๋ชจ๋์ ์๋์ผ๋ก ์ฌ์ ์ํ๋ ๋ก๋๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- Python์ ๊ฒฝ์ฐ ๊ตฌ์ฑ์์ ์ฌ๋ฌ "๋์" ์น์ ์ ์ง์ ํ์ฌ ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์์ WSGI/ASGI ํธ๋ค๋ฌ๋ฅผ ํธ์ถํ๊ธฐ ์ํ ๋ค์ํ ์ฒด๊ณ๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. { "applications": { "python-app": { "type": "python", "path": "/www/apps/python-app/", "targets": { "foo": { "module" : "foo.wsgi", "ํธ์ถ ๊ฐ๋ฅ": "foo" }, "bar": { "๋ชจ๋": "bar.wsgi", "ํธ์ถ ๊ฐ๋ฅ": "bar" } } } } }
์ถ์ฒ : opennet.ru