FastCGI 플러그인은 다음과 같은 서버 응용 프로그램 기능(SAF)을 제공합니다.
FastCGI SAF의 다양한 매개 변수와 "error-reason" 문자열에 대해서는 다음 절에서 설명합니다.
auth-fastcgi는 PatchCheck 기능입니다. 이 기능은 요청을 "인증자" FastCGI 응용 프로그램으로 전달하는 데 사용됩니다. 인증에 성공하면 반환 코드 200이 전송됩니다. 그렇지 않은 경우 "인증자" FastCGI 응용 프로그램의 응답이 사용자 에이전트로 돌아갑니다.
FastCGI 역할에 대한 자세한 내용은 http://www.fastcgi.com/devkit/doc/fcgi-spec.html#S6을 참조하십시오.
auth-fastcgi SAF에서 허용되는 매개 변수는 다음을 참조하십시오. FastCGI SAF 매개 변수.
다음 obj.conf 코드에서는 auth-fastcgi의 사용 예를 보여줍니다.
PathCheck fn="auth-fastcgi" app-path="/usr/bin/perl" app-args="/fastcgi/apps/auth/SimpleAuth.pl" bind-path="localhost:3432".
responder-fastcgi는 서비스 함수입니다. 이 함수는 "응답기"로 사용되는 FastCGI 응용 프로그램으로 요청을 전달하는 데 사용됩니다. 응답기 응용 프로그램의 응답은 사용자 에이전트로 돌아갑니다. FastCGI 역할에 대한 자세한 내용은 http://www.fastcgi.com/devkit/doc/fcgi-spec.html#S6을 참조하십시오.
responder-fastcgi SAF에서 허용되는 매개 변수의 목록은 다음을 참조하십시오. FastCGI SAF 매개 변수 .
다음 obj.conf 코드에서는 responder-fastcgi의 사용 예를 보여줍니다.
Service fn="responder-fastcgi" app-path="/fastcgi-enabled-php-installation/bin/php" bind-path="localhost:3433" app-env="PHP_FCGI_CHILDREN=8" app-env="PHP_FCGI_MAX_REQUEST=500" .
filter-fastcgi는 서비스 함수입니다. 이 기능은 요청을 "필터" 유형의 FastCGI 응용 프로그램으로 전달하는 데 사용됩니다. "필터" 응용 프로그램은 HTTP 요청과 연결된 정보를 받으며 서버에 저장된 파일의 데이터도 받습니다. 그런 다음 "필터" 응용 프로그램은 응답으로 "필터링된" 버전의 데이터 스트림을 생성합니다. 이 스트림은 사용자 에이전트로 다시 전송됩니다. FastCGI 역할에 대한 자세한 내용은 http://www.fastcgi.com/devkit/doc/fcgi-spec.html#S6을 참조하십시오.
filter-fastcgi SAF에서 허용되는 매개 변수의 목록은 다음을 참조하십시오. FastCGI SAF 매개 변수 .
다음 obj.conf 코드에서는 filter-fastcgi의 사용 예를 보여줍니다.
Service fn="filter-fastcgi" app-path="/fastcgi/apps/filter/SimpleFilter" bind-path="localhost:3434" app-env="LD_LIBRARY_PATH=/fastcgi/fcgi-2.4/libfcgi/.libs" min-procs=2
error-fastcgi는 오류 함수입니다. error-fastcgi SAF는 FastCGI 플러그인의 오류를 처리합니다. 그러나 이 함수는 HTTP 오류를 처리하지 않습니다. 오류가 발생한 경우에는 특정 페이지를 표시하거나 요청을 특정 URL로 리디렉션하도록 FastCGI 플러그인을 구성할 수 있습니다.
error-fastcgi SAF에서 허용되는 매개 변수의 목록은 다음을 참조하십시오. FastCGI SAF 매개 변수.
다음 obj.conf 코드는 error-fastcgi의 사용 예를 보여줍니다.
Error fn="error-fastcgi" error-reason="Invalid Parameters" error-url="http://www.foo.com/errorPage.html"
error-fastcgi 매개 변수에 대한 자세한 내용은 FastCGI SAF 매개 변수를 참조하십시오.
SAF의 FastCGI 플러그인인 "auth-fastcgi", " responder-fastcgi" 및 "filter-fastcgi"는 따로 명시되지 않은 한 다음 매개 변수를 모두 허용합니다.
bind-path - (선택 사항) UNIX 도메인 소켓 이름이나 명명된 파일 또는 host:port 형식일 수 있습니다. app-path 매개 변수 설명에서는 bind-path 매개 변수의 사용법에 대해 설명합니다.
app-path - (선택 사항)요청을 처리하는 FastCGI 응용 프로그램 경로입니다. 이 기능은 다음과 같이 bind-path 매개 변수 값에 따라 결정됩니다.
플러그인은 app-path가 지정된 경우에만 플러그인에서 만든 UNIX 도메인 소켓 및 명명된 파이프를 수신하는 FastCGI 응용 프로그램을 만듭니다.
app-path와 bind-path가 모두 지정된 경우 플러그인은 지정된 FastCGI 응용 프로그램 프로세스를 시작하고 지정된 bind-path에 바인드합니다.
bind-path만 지정된 경우에는 FastCGI 응용 프로그램이 원격에서 실행되는 것으로 간주됩니다. 따라서 플러그인은 FastCGI 응용 프로그램 프로세스를 시작하지 않습니다.
"app-path"와 "bind-path"가 모두 지정되지 않은 경우에는 플러그인에서 오류 메시지가 기록됩니다.
app-args — (선택 사항) FastCGI 응용 프로그램 프로세스에 인수로 전달되는 값입니다. 여러 개의 app-args 매개 변수가 허용됩니다. 여러 app-args 매개 변수를 사용할 때의 형식은 app-args="value" app-args="value" ..입니다.
app-env - (선택 사항) FastCGI 응용 프로그램 프로세스에 환경 변수로 전달되는 값 쌍입니다. 여러 개의 " app-env" 매개 변수가 허용됩니다. 여러 app-env 매개 변수를 사용할 때의 형식은 app-env="name=value" app-env="name=value"입니다. 기존 Web Server 환경 변수는 FastCGI 프로그램으로 전달되지 않습니다. 따라서 app-env를 사용하여 FastCGI 프로그램에 대한 환경 변수를 명시적으로 설정해야 합니다.
PHP 프로그램을 컴파일하려면 라이브러리 파일이 올바르게 구성되어 있는지 확인해야 합니다.
예를 들어 FastCGI 응용 프로그램으로 컴파일한 PHP 바이너리를 로드하려면 종속 라이브러리 파일인 /usr/local/lib와 /usr/local/mysql/lib를 모두 LD_LIBRARY_PATH로 내보내야 합니다.
app-env="LD_LIBRARY_PATH=/usr/local/lib:/usr/local/mysql/lib"
Windows의 경우, app-env="Path=c:/php/lib:c:/mysql/lib"
app-env를 사용하여 다른 환경 변수를 PHP 응용 프로그램으로 내보낼 수도 있습니다. php.ini 파일 위치를 app-env="PHPRC=<directory path>"와 같이 지정할 수 있습니다.
FastCGI에서 PHP를 구성할 때 우선 순위가 더 높아지도록 PHP를 사용하는 동안 PHP_FCGI_CHILDREN 및 PHP_FCGI_MAX_REQUESTS에 더 높은 값을 지정해야 합니다.
min-procs - (선택 사항) 만들어야 할 FastCGI 응용 프로그램 프로세스의 최소 수를 지정하는 정수입니다. 기본값은 1입니다.
max-procs - (선택 사항) 임의의 시점에 만들 수 있는 FastCGI 응용 프로그램 프로세스의 최대 수를 지정하는 정수입니다. 정수 값은 min-procs 값 이상이어야 합니다. 기본값은 1입니다.
기본값은 현재 작동하지 않는 매개 변수입니다. 이 문제에 대한 자세한 내용은 Sun Java System Web Server 7.0 Update 3 릴리스 노트의 FastCGI 를 참조하십시오.
reuse-connection - (선택 사항) FastCGI 응용 프로그램에 대한 연결을 다시 사용할 것인지 여부를 결정하는 부울 값입니다. False(0, false, no)는 각 요청 뒤에 FastCGI 응용 프로그램에 대한 연결이 닫히는 것을 나타냅니다. True(1, true, yes)는 새 요청에 기존 연결을 다시 사용하는 것을 나타냅니다. 기본값은 false입니다. connection-timeout을 참조하십시오.
connection-timeout - (선택 사항) "reuse-connection "이 True로 설정되어 있으면 이 값은 풀링된 연결의 시간 초과 값을 초 단위로 지정합니다. 연결이 지정된 시간 동안 유휴 상태이면 플러그인에서 연결을 닫습니다. 이 매개 변수의 기본값은 5초입니다. reuse-connection을 참조하십시오.
resp-timeout - (선택 사항) FastCGI 서버 응답 시간 초과 값을 초 단위로 나타내는 정수입니다. FastCGI 응용 프로그램에서 지정된 시간 내에 응답이 없는 경우에는 요청이 무시됩니다. 이 매개 변수의 기본값은 5분입니다.
restart-interval - (선택 사항) FastCGI 응용 프로그램이 다시 시작된 후 시간 간격(분)을 나타내는 정수입니다. 이 매개 변수의 기본값은 60분(1시간)입니다. 이 매개 변수 값을 0으로 설정하면 FastCGI 응용 프로그램을 강제로 다시 시작하지 않습니다.
req-retry - (선택 사항) FastCGI 응용 프로그램에서 요청을 거부한 경우에 플러그인이 요청을 다시 보내는 횟수를 나타내는 정수입니다. 이 매개 변수의 기본값은 0입니다.
listen-queue - (선택 사항) 소켓의 수신 대기열 크기를 지정하는 정수입니다. 이 매개 변수의 기본값은 256입니다.
rlimit_cpu — FastCGI 프로그램에서 사용될 최대 CPU 시간(초)을 지정합니다. 현재(소프트) 제한만 지정할 수 있습니다. 최대(하드) 제한은 이 매개 변수에는 해당하지 않으므로 무시됩니다.
chroot, user, group, nice , chdir, rlimit_as, rlimit_core 및 rlimit_nofile 매개 변수는 UNIX 플랫폼에만 해당됩니다. Windows 플랫폼에서는 이런 매개 변수가 무시됩니다.
chroot - (선택 사항, UNIX에만 해당) chroot FastCGI 서버 응용 프로그램 프로세스의 루트 디렉토리를 설정하는 데 사용됩니다.
user - (선택 사항, UNIX에만 해당) FastCGI 응용 프로그램 실행에 사용되는 사용자 아이디를 지정합니다. 기본값은 Web Server의 사용자 아이디입니다.
group - (선택 사항, UNIX에만 해당) FastCGI 응용 프로그램은 지정된 그룹에서 실행됩니다. 기본값은 Web Server의 그룹입니다.
nice - (선택 사항, UNIX에만 해당) FastCGI 응용 프로그램 프로세스의 nice/priority 값을 지정합니다.
chdir - (선택 사항, UNIX에만 해당) chroot 뒤에 실행이 시작되기 전까지의 chdir에 대한 디렉토리를 지정합니다.
rlimit_as - (선택 사항, UNIX에만 해당) 최대 CGI 프로그램 주소 공간(바이트)을 지정합니다. 현재(소프트) 제한과 최대(하드) 제한 모두를 쉼표로 구분하여 입력할 수 있습니다. 소프트 제한이 앞에 와야 합니다. 제한이 하나만 지정된 경우 두 제한이 모두 이 값으로 설정됩니다.
rlimit_core - (선택 사항, UNIX에만 해당) CGI 프로그램 코어 파일의 최대 크기를 지정합니다. 값이 0이면 쓰기 코어가 비활성화됩니다. 현재(소프트) 제한과 최대(하드) 제한 모두를 쉼표로 구분하여 입력할 수 있습니다. 소프트 제한이 앞에 와야 합니다. 제한이 하나만 지정된 경우 두 제한이 모두 이 값으로 설정됩니다.
rlimit_nofile - (선택 사항, UNIX에만 해당) CGI 프로그램 파일 설명자의 최대 개수를 지정합니다. 현재(소프트) 제한과 최대(하드) 제한 모두를 쉼표로 구분하여 입력할 수 있습니다. 소프트 제한이 앞에 와야 합니다. 제한이 하나만 지정된 경우 두 제한이 모두 이 값으로 설정됩니다.
error-fastcgi SAF(Server Application Function)에는 다음과 같은 매개 변수를 사용할 수 있습니다.
error-url - 장애나 오류가 발생한 경우에 표시할 페이지, URI 또는 URL을 지정합니다. 이 매개 변수 값에는 절대 경로, docroot를 기준으로 한 상대 경로 또는 URL이나 URI를 사용할 수 있습니다.
error-reason - (선택 사항) FastCGI 프로토콜 오류를 나타내는 문자열입니다. 이 문자열은 플러그인 오류가 발생한 경우에 표시할 오류 URL을 구분하는 데 사용됩니다.
이 절에서는 모든 유효한 "error-reason" 문자열의 목록과 해당 설명을 제시합니다.
"Missing or Invalid Config Parameters" : app-path 및 bind-path가 지정되지 않은 경우입니다.
"Stub Start Error" : Fastcgisub 프로세스를 시작하지 못했습니다.
"Stub Connection Failure" : Fastcgistub에 연결할 수 없습니다.
"No Permission" : FastCGI 응용 프로그램 또는 Fastcgisub에 실행 권한이 없습니다.
"Stub Request Handling Error" : 요청을 스텁으로 보낼 수 없거나, 요청의 스텁에서 잘못된 응답을 받았거나, 응답이 없는 경우 등을 나타냅니다.
"Set Parameter Failure" : 설정된 사용자, 그룹, chroot, nice 등이 실패했습니다.
"Invalid user and/or group" : 사용자 또는 그룹이 유효하지 않습니다.
"Server Process Creation Failure" : FastCGI 응용 프로그램 실행 장애가 발생했거나 FastCGI 응용 프로그램을 지정된 주소에 바인드할 수 없습니다.
"Fastcgi Protocol Error” : FastCGI 응용 프로그램에 FastCGI 버전 또는 역할이 잘못된 헤더가 포함되어 있습니다.
"Internal Error" : 필터 응용 프로그램으로 보낼 파일을 열 수 없거나 기타 알 수 없는 오류가 발생했습니다.