์ด๊ฒ์ Ubuntu Online, Fedora Online, Windows ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ ๋๋ MAC OS ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ์ ๊ฐ์ ์ฌ๋ฌ ๋ฌด๋ฃ ์จ๋ผ์ธ ์ํฌ์คํ ์ด์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ OnWorks ๋ฌด๋ฃ ํธ์คํ ๊ณต๊ธ์์์ ์คํํ ์ ์๋ cgi-fcgi ๋ช ๋ น์ ๋๋ค.
ํ๋ก๊ทธ๋จ:
์ด๋ฆ
cgi-fcgi - CGI์์ FastCGI๋ก ์ฐ๊ฒฐ
๊ฐ์
CGI-์๋ fcgi -f cmd๊ฒฝ๋ก
CGI-์๋ fcgi -bind -connect ์ฐ๊ฒฐ ์ด๋ฆ
CGI-์๋ fcgi -start -connect connName appPath [nServers]
CGI-์๋ fcgi -connName appPath [nServers] ์ฐ๊ฒฐ
๊ธฐ์
cgi-fcgi๋ ์ด๋ฏธ ์คํ ์ค์ธ FastCGI์ ํต์ ํ๋ CGI/1.1 ํ๋ก๊ทธ๋จ์ ๋๋ค.
HTTP ์์ฒญ์ ์๋ตํ๊ธฐ ์ํด ์์ฉ ํ๋ก๊ทธ๋จ. cgi-fcgi๋ ์์ํ ์ ์์ต๋๋ค.
FastCGI ์์ฉ ํ๋ก๊ทธ๋จ.
cgi-fcgi๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ํธ์ถํ๋ฉด
CGI-์๋ fcgi -f cmd๊ฒฝ๋ก
๊ทธ๋ฐ ๋ค์ cgi-fcgi๋ cmdPath์์ ํ์ผ์ ์ด๊ณ ํด๋น ํ์ผ์์ ํด๋น ์ธ์๋ฅผ ์ฝ์ต๋๋ค. cgi-fcgi
์ฃผ์ ๋ฌธ์ #๋ก ์์ํ๋ ์ค์ ๊ฑด๋๋๋๋ค. ์ฃผ์์ด ์๋ ์ฒซ ๋ฒ์งธ ์ค
๋ค๋ฅธ ์ธ ๊ฐ์ง ํ์ ์ค ํ๋์ ์ ํจํ ์ธ์๋ฅผ ํฌํจํด์ผ ํฉ๋๋ค.
cgi-fcgi์ -f ํ์์ Unix ์์คํ ์ฉ์ผ๋ก ์ค๊ณ๋์์ต๋๋ค. ์์(2) ์์คํ ํธ์ถ ๊ณ์ด
๋ช ๋ น ํด์๊ธฐ ํ์ผ์ ์คํ์ ์ง์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์คํ์ด ํฌํจ๋ ํ์ผ์ ๊ฒฝ์ฐ
๊ถํ์๋ ํ ์คํธ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
#! /bin/cgi-fcgi -f
-์ฐ๊ฒฐ /httpd/root/sock/app /httpd/root/bin/app
ํจ๊ณผ๋ ์คํ๊ณผ ๋์ผํฉ๋๋ค.
/usr/bin/cgi-fcgi -connect /httpd/root/sock/app /httpd/root/bin/app
cgi-fcgi๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ํธ์ถํ๋ฉด
cgi-fcgi -bind -connect connName
connName ์ธ์๋ Unix ๋๋ฉ์ธ ์ฒญ์ทจ ์์ผ์ ๊ฒฝ๋ก ์ด๋ฆ์ด๊ฑฐ๋
ํธ์คํธ:ํฌํธ ์. connName์ ์ฝ๋ก ์ด ์์ผ๋ฉด host:port๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. cgi-fcgi
์ํ ์๋ค(2) connName์ ์ฌ์ฉํฉ๋๋ค. ์ฐ๊ฒฐ์ ์ฑ๊ณตํ๋ฉด cgi-fcgi๋ CGI๋ฅผ ์ ๋ฌํฉ๋๋ค.
ํ๊ฒฝ ๋ณ์ ๋ฐ stdin ๋ฐ์ดํฐ๋ฅผ FastCGI ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์ ์กํ๊ณ stdout์ ์ ๋ฌํฉ๋๋ค.
์์ฉ ํ๋ก๊ทธ๋จ์์ cgi-fcgi์ stdout์ผ๋ก stderr ๋ฐ์ดํฐ(๋๋ถ๋ถ ์น์ ์ฐ๊ฒฐ๋จ)
์ฌ๊ธฐ๋ ์ฌ๋). FastCGI ์์ฉ ํ๋ก๊ทธ๋จ์ด ์๋ต ์ข ๋ฃ ์ ํธ๋ฅผ ๋ณด๋ด๋ฉด cgi-fcgi๊ฐ ํ๋ฌ์ํฉ๋๋ค.
๋ฒํผ๋งํ๊ณ ์ข ๋ฃํ๊ณ ์น ์๋ฒ๋ http ์๋ต์ ์๋ฃํฉ๋๋ค.
cgi-fcgi๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ํธ์ถํ๋ฉด
cgi-fcgi -start -connect connName appPath [nServers]
๊ทธ๋ฐ ๋ค์ cgi-fcgi๋ ํ๋ ์ด์์ FastCGI ์์ฉ ํ๋ก๊ทธ๋จ ํ๋ก์ธ์ค๋ฅผ ์์ํ๋ ๊ธฐ๋ฅ์ ์ํํฉ๋๋ค.
connName ์ธ์๋ Unix ๋๋ฉ์ธ ์์ ์์ผ์ ๊ฒฝ๋ก ์ด๋ฆ์ ์ง์ ํฉ๋๋ค.
cgi-fcgi๊ฐ ๋ง๋ค๊ฑฐ๋ "localhost:NNN"์ ๋๋ค. ์ฌ๊ธฐ์ NNN์
cgi-fcgi๊ฐ ๋ก์ปฌ ๋จธ์ ์์ ์์ฑํ TCP/IP ์ฒญ์ทจ ์์ผ. (cgi-fcgi๋
์๊ฒฉ ์์คํ ์์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ์ง ์์ต๋๋ค.) cgi-fcgi๊ฐ ์ฒญ์ทจ ์์ผ์ ์์ฑํ ํ
์คํ ํ์ผ appPath๋ฅผ ์คํํ๋ ํ๋ก์ธ์ค์ nServers ๋ณต์ฌ๋ณธ์ ํฌํฌํฉ๋๋ค. nServers๊ฐ
์๋ตํ๋ฉด ๊ฐ "1"์ด ์ง์ ๋ ๊ฒ๊ณผ ๊ฐ์ ํจ๊ณผ๊ฐ ๋ํ๋ฉ๋๋ค. ํ๋ก์ธ์ค๋ ๋ค์์ ๊ณต์ ํฉ๋๋ค.
๋จ์ผ ์ฒญ์ทจ ์์ผ.
cgi-fcgi๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ํธ์ถํ๋ฉด
cgi-fcgi -connName appPath [nServers] ์ฐ๊ฒฐ
cgi-fcgi๋ -bind๋ฅผ ์ํํ ๋ค์ ํ์ํ๋ฉด -start๋ฅผ ์ํํ๊ณ -bind๋ฅผ ๋ฐ๋ณตํฉ๋๋ค.
์ฆ, cgi-fcgi๋ ์ฒ์์ ๋ช ๋ น์ด ์คํ๋ ๊ฒ์ฒ๋ผ ์๋ํฉ๋๋ค.
cgi-fcgi -bind -connect connName
์ฐ๊ฒฐ์ ์คํจํ๋ฉด cgi-fcgi๊ฐ ์๋ํฉ๋๋ค.
cgi-fcgi -start -connect connName appPath [nServers]
๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ผ๋ก ์ฌ์๋
cgi-fcgi -bind -connect connName
์ด ํ์์์ cgi-fcgi๋ TCP/IP ์ฐ๊ฒฐ์ ์ง์ํ์ง ์์ต๋๋ค.
ํ๊ฒฝ ๋ณ์
์ผ๋ฐ์ ์ธ CGI์ด์ง๋ง cgi-fcgi์ ์ํด ํด์๋์ง ์์ต๋๋ค.
onworks.net ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ์จ๋ผ์ธ์์ cgi-fcgi ์ฌ์ฉ