์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ ๋ฆด๋ฆฌ์ค , ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด(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 }
}
}
} - "๊ธฐ๋ฅ๊ณผ ์ ์ฌํ ์ ์ฐํ ์์ฒญ ๋ผ์ฐํ
๊ท์น์ ์ค์ ํ๋ ๊ธฐ๋ฅยป nginx์์. "fallback" ์ง์์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๊ฐ ๊ฒฝ๋ก๋ฅผ ์ง์ ํฉ๋๋ค. ์ด ์ง์์ด๋ ์์ฒญ๋ ํ์ผ์ด "share" ์ง์์ด๋ก ์ ์๋ ๊ฒฝ๋ก์์ ๋ฐ๊ฒฌ๋์ง ์์ ๊ฒฝ์ฐ ํธ๋ฆฌ๊ฑฐ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, /data/www/ ๋๋ ํฐ๋ฆฌ์์ ํ์ผ์ด ๋๋ฝ๋ ๊ฒฝ์ฐ PHP ํธ๋ค๋ฌ๋ฅผ ํธ์ถํ๋ ค๋ฉด ๋ค์์ ์ง์ ํ ์ ์์ต๋๋ค.
{
"๊ณต์ ": "/data/www/",
"ํด๋ฐฑ": {
"pass": "applications/php"
}
}์ค์ฒฉ๋ "ํด๋ฐฑ" ๋ธ๋ก์ด ํ์ฉ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํ์ผ์ด /data/www/์ ์๋ ๊ฒฝ์ฐ /data/cache/์์ ํด๋น ํ์ผ์ ์ ๊ณตํ๊ณ , ํด๋น ์์น์๋ ์๋ ๊ฒฝ์ฐ ์์ฒญ์ ๋ค๋ฅธ ๋ฐฑ์๋๋ก ๋ฆฌ๋๋ ์ ํ ์ ์์ต๋๋ค.
{
"๊ณต์ ": "/data/www/","ํด๋ฐฑ": {
"๊ณต์ ": "/๋ฐ์ดํฐ/์บ์/","ํด๋ฐฑ": {
"ํ๋ก์": "http://127.0.0.1:9000"
}
}
} - JSON ํ์์ผ๋ก ๋ก๋๋ ๊ตฌ์ฑ ๋งค๊ฐ๋ณ์๋ ์ด์ JavaScript ์คํ์ผ ์ฃผ์("//โฆ" ๋ฐ "/* โฆ */")์ด ์ ๊ฑฐ๋๊ณ ๋ฐ์ดํธ ์์ ํ์๊ธฐ๊ฐ ์ง์์ง๋๋ค.), JSON์์ ๋งค๊ฐ๋ณ์๋ฅผ ์๋์ผ๋ก ํธ์งํ๋ ๊ฒฝ์ฐ์ ์ ์ฉํ ์ ์์ต๋๋ค.
- ๋งค์ฐ ํฐ ์์ฒญ์ ๋ณธ๋ฌธ์ ๋์คํฌ๋ก ํ๋ฌ์ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์๋น๋ฅผ ์ค์์ต๋๋ค.
์ถ์ฒ : opennet.ru
