MSA ํŠธ๋ ˆ์ด๋‹ ์„ผํ„ฐ

NGINX Unit Hello World!

์ด ํŠธ๋ ˆ์ด๋‹ ์˜์ƒ์—์„œ๋Š”ย NGINX Unit ๊ตฌ์„ฑ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฒซ ๋ฒˆ์งธ “Hello World” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์„ธ์š”.

NGINX Unit์€ ๋ฒ”์šฉ ์›น ์•ฑ ์„œ๋ฒ„๋กœ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ๋ฐฐํฌ์—์„œ ์• ์™„ ๋™๋ฌผ์˜ ํ™ˆํŽ˜์ด์ง€์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๋ณต์žก์„ฑ์— ๊ด€๊ณ„์—†์ด ๋ชจ๋“  ์›น ์•„ํ‚คํ…์ฒ˜์˜ ๋นŒ๋”ฉ ๋ธ”๋ก์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ ˆ๊ฑฐ์‹œ ๋ฐ ๋ชจ๋†€๋ฆฌ์‹ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ˜„๋Œ€ํ™”ํ•˜๋Š” ๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ตœ์‹  ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ™˜๊ฒฝ์„ ๋‹จ์ˆœํ™”ํ•˜๋Š” ๋ฐ์—๋„ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

NGINX Unit์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ, ์„ค์น˜ ๋ฐฉ๋ฒ•, ๊ตฌ์„ฑ API ํƒ์ƒ‰, ์ฒซ ๋ฒˆ์งธ “Hello World” ์ž‘์„ฑ, ์›น ์„œ๋ฒ„ ๊ตฌ์„ฑ, Unit ์–ธ์–ด ๋ชจ๋“ˆ ์†Œ๊ฐœ ๋“ฑ์„ ๋‹ค๋ฃจ๋Š” ์ „์ฒด ๊ณผ์ •์„ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค.

NGINX Unit ๊ตฌ์„ฑ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฒซ ๋ฒˆ์งธ "Hello World" ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ

NGINX Unit์€ ๋™์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋กœ, ๋‹ค์ค‘ ์–ธ์–ด ์ง€์›, RESTful ๊ตฌ์„ฑ API, ๊ทธ๋ฆฌ๊ณ  ๊ณ ์„ฑ๋Šฅ์˜ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํšจ์œจ์ ์œผ๋กœ ๋ฐฐํฌํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” NGINX Unit์˜ ๊ตฌ์„ฑ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•œ “Hello World” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹จ๊ณ„๋ณ„๋กœ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Python์„ ํ™œ์šฉํ•œ ์˜ˆ์ œ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ง„ํ–‰ํ•˜๋ฉฐ, NGINX Unit ์„ค์ •๊ณผ ํ…Œ์ŠคํŠธ ๊ณผ์ •๊นŒ์ง€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ ์ค€๋น„

ํ•„์ˆ˜ ๊ตฌ์„ฑ ์š”์†Œ

์ฒซ ๋ฒˆ์งธ๋กœ, NGINX Unit ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํ•„์ˆ˜ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” Python์œผ๋กœ ์ž‘์„ฑ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, Python ๋Ÿฐํƒ€์ž„๊ณผ NGINX Unit์˜ Python ์ง€์› ๋ชจ๋“ˆ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • NGINX Unit ์„ค์น˜: ์ตœ์‹  ๋ฒ„์ „์˜ NGINX Unit์ด ์‹œ์Šคํ…œ์— ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. NGINX Unit ๊ณต์‹ ์„ค์น˜ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์„ค์น˜๋ฅผ ์™„๋ฃŒํ•˜์„ธ์š”.
  • Python 3 ๋Ÿฐํƒ€์ž„: Python 3.7 ์ด์ƒ์ด ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” Flask ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • HTTP ํด๋ผ์ด์–ธํŠธ ๋„๊ตฌ: ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด curl์ด๋‚˜ Postman๊ณผ ๊ฐ™์€ HTTP ํด๋ผ์ด์–ธํŠธ ๋„๊ตฌ๋ฅผ ์ค€๋น„ํ•˜์„ธ์š”.

Python ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž‘์„ฑ

๋จผ์ €, ๊ฐ„๋‹จํ•œ Python ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ•˜์—ฌ “Hello World” ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ๋™์ž‘์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํŒŒ์ผ ์ƒ์„ฑ

์›ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์—์„œ hello.py๋ผ๋Š” ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ ๋’ค, ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ์ฝ”๋“œ๋Š” Flask ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, HTTP GET ์š”์ฒญ์— ์‘๋‹ตํ•˜์—ฌ “Hello, World!” ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

				
					from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, World!", 200

				
			

Flask ์„ค์น˜

Flask๋Š” Python์—์„œ ๊ฐ„๋‹จํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์„ธ์š”

				
					pip install flask
				
			

์ด ๋ช…๋ น์€ Flask ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๋ฉฐ, ์ดํ›„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™˜๊ฒฝ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

NGINX Unit ๊ตฌ์„ฑ

NGINX Unit์€ RESTful API๋ฅผ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋™์ ์œผ๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Python ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด NGINX Unit์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ผ์šฐํŠธ ์„ค์ •์„ JSON ํ˜•์‹์œผ๋กœ ์ „๋‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์„ฑ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ NGINX Unit์— ๋“ฑ๋กํ•˜๋ ค๋ฉด, curl ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Unit์˜ ๊ตฌ์„ฑ API๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ๋ช…๋ น์€ Python ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

				
					curl -X PUT --unix-socket /var/run/control.unit.sock \
-d '{
    "type": "python",
    "path": "'$(pwd)'",
    "module": "hello"
}' http://localhost/config/applications/hello

				
			
  • type: ์‹คํ–‰ํ•  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์œ ํ˜•์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์ œ์—์„œ๋Š” Python์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ python์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • path: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํŒŒ์ผ(hello.py)์ด ์ €์žฅ๋œ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ $(pwd)๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  • module: Python ๋ชจ๋“ˆ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ํŒŒ์ผ ์ด๋ฆ„์—์„œ .py๋ฅผ ์ œ์™ธํ•œ hello๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ผ์šฐํŠธ ์„ค์ •

NGINX Unit์ด ํŠน์ • ํฌํŠธ์—์„œ ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ผ์šฐํŠธ๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์•„๋ž˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค

				
					curl -X PUT --unix-socket /var/run/control.unit.sock \
-d '{
    "listeners": {
        "*:8080": {
            "pass": "applications/hello"
        }
    }
}' http://localhost/config

				
			
  • listeners: NGINX Unit์ด ์š”์ฒญ์„ ์ˆ˜์‹ ํ•  ํฌํŠธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์œ„ ์˜ˆ์ œ์—์„œ๋Š” 8080 ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  • pass: ์š”์ฒญ์„ ์ „๋‹ฌํ•  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” applications/hello๋กœ ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ…Œ์ŠคํŠธ

NGINX Unit์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ผ์šฐํŠธ ๊ตฌ์„ฑ์ด ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฏ€๋กœ, ์ด์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•  ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด HTTP ํด๋ผ์ด์–ธํŠธ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •ํ•œ ํฌํŠธ๋กœ ์š”์ฒญ์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

๋ธŒ๋ผ์šฐ์ €์—์„œ ํ…Œ์ŠคํŠธ

๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost:8080 URL์— ์ ‘์†ํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‘๋‹ต์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ € ํ™”๋ฉด์— Hello, World! ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด ์„ฑ๊ณต์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

curl ๋กœ ํ…Œ์ŠคํŠธ

๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด ์‘๋‹ต์„ ํ™•์ธํ•˜๋ ค๋ฉด ์•„๋ž˜ ๋ช…๋ น ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

				
					curl http://localhost:8080
				
			

์„ฑ๊ณต์ ์ธ ์‘๋‹ต์ด ๋ฐ˜ํ™˜๋˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

				
					Hello, World!
				
			

๊ตฌ์„ฑ ํ™•์ธ ๋ฐ ๊ด€๋ฆฌ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ๋ผ์šฐํŠธ ๊ตฌ์„ฑ์„ ํฌํ•จํ•œ NGINX Unit์˜ ์ „์ฒด ์„ค์ • ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

				
					curl --unix-socket /var/run/control.unit.sock http://localhost/config/

				
			

์ด ๋ช…๋ น์€ ํ˜„์žฌ NGINX Unit์— ์„ค์ •๋œ ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๋ผ์šฐํŠธ, ๋ฆฌ์Šค๋„ˆ ์ •๋ณด๋ฅผ JSON ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์„ค์ •์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ ์šฉ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ ํ•ด๊ฒฐ

Unit ์„œ๋น„์Šค ์ƒํƒœ ํ™•์ธ

NGINX Unit ์„œ๋น„์Šค๊ฐ€ ์ œ๋Œ€๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

				
					systemctl status unit
				
			

์„œ๋น„์Šค๊ฐ€ ํ™œ์„ฑ ์ƒํƒœ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ, ์žฌ์‹œ์ž‘์„ ์‹œ๋„ํ•˜์„ธ์š”.

				
					systemctl restart unit
				
			

๋กœ๊ทธ ๋ถ„์„

NGINX Unit ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ด€๋ จ ์˜ค๋ฅ˜๋ฅผ ๋””๋ฒ„๊น…ํ•˜๋ ค๋ฉด ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์„ธ์š”.

				
					journalctl -u unit
				
			

ํ™•์žฅ ๋ฐ ๋‹ค์Œ ๋‹จ๊ณ„

๋‹ค๋ฅธ ์–ธ์–ด๋กœ ํ™•์žฅ

NGINX Unit์€ Python๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Node.js, PHP, Go, Java ๋“ฑ ๋‹ค์–‘ํ•œ ์–ธ์–ด๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ์–ธ์–ด๋กœ “Hello World” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ•˜์—ฌ ์‹คํ–‰ํ•ด ๋ณด์„ธ์š”.

HTTPS ์„ค์ •

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๊ธฐ ์œ„ํ•ด SSL ์ธ์ฆ์„œ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ HTTPS ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ๋ฐ ์Šค์ผ€์ผ๋ง

NGINX Unit์˜ ์œ ์—ฐํ•œ ์„ค์ •์„ ํ™œ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธ์Šคํ„ด์Šค๋ฅผ ํ™•์žฅํ•˜๊ณ , ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ํ†ตํ•ด ๋†’์€ ํŠธ๋ž˜ํ”ฝ๋„ ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

NGINX Unit ๊ตฌ์„ฑ API ๊ฒฐ๋ก 

NGINX Unit ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ

์ด ๊ฐ€์ด๋“œ๋ฅผ ํ†ตํ•ด NGINX Unit์˜ ๊ตฌ์„ฑ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•œ “Hello World” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๊ณผ์ •์„ ํ•™์Šตํ–ˆ์Šต๋‹ˆ๋‹ค. Unit์˜ ๊ฐ•๋ ฅํ•˜๊ณ  ์œ ์—ฐํ•œ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ๋” ๋ณต์žกํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ํ™•์žฅํ•˜๊ณ , ์•ˆ์ •์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์šด์˜ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•ด ๋ณด์„ธ์š”!

NGINX Unit ์„ ์‹œ์ž‘ํ•˜๋ ค๋ฉด NGINX Unit ์˜ ๊ณต์‹ Docs ๋ฅผ ํ™•์ธํ•˜๊ฑฐ๋‚˜ NGINX STORE์— ๋ฌธ์˜ํ•˜์—ฌ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋Œ€ํ•ด ์ƒ๋‹ด ๋ฐ›์•„๋ณด์„ธ์š”.