레이블이 fastcgi인 게시물을 표시합니다. 모든 게시물 표시
레이블이 fastcgi인 게시물을 표시합니다. 모든 게시물 표시

Linux NginX + FastCGI 사용하기

# 일반 cgi 프로그램의 경우 요청이 있을때 마다 웹서버에 의해서 실행되고 웹서버와 파이프라인으로 통신하게 된다.

# fastcgi 는 cgi 프로그램을 실행되고 있는 상태로 유지하고 tcp/ip 로 통신할 수 있다.
# fastcgi 다운로드, 빌드, 설치
wget http://www.fastcgi.com/dist/fcgi.tar.gz
tar zxvf fcgi.tar.gz
cd fcgi-2.4.1-SNAP-0311112127/
./configure
make

# make EOF 에러가 발생한다.
# vi ./libfcgi/fcgio.cpp
# #include <stdio.h> 를 추가해주자.
# 다시 make
sudo make install

# 라이브러리가 설치된 경로를 추가
sudo vi /etc/ld.so.conf
/usr/local/lib

# ldconfig 적용
sudo /sbin/ldconfig

# fastcgitest 프로그램 작성
#include <stdio.h>
#include <stdlib.h>
#include "fcgi_stdio.h"
int main()
{
while (FCGI_Accept() >= 0)
{
printf("Content-type: text/html\r\n"
    "\r\n"
    "<h1>fastcgi test</h1>"
"\r\n");
}
return 0;
}

# 빌드
g++ fastcgitest.c -lfcgi++ -lfcgi -o fastcgitest

# fastcgi 를 실행시키 위한 spawn-fcgi 다운로드,빌드,설치
http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz
tar zxvf spawn-fcgi-1.6.3.tar.gz
cd spawn-fcgi-1.6.3
./configure
make
sudo make install

# fastcgi 를 9000 포트로 실행
sudo /usr/local/bin/spawn-fcgi -p 9000 fastcgitest

# nginx .conf 수정
location /ysoftmancgi {
    # cgi 를 처리할 주소 명시
    fastcgi_pass    127.0.0.1:9000;
}

# nginx 재시작
sudo /etc/init.d/nginx restart