Jesteś tutaj: Strona Główna > O Linuksie słów kilka > Nginx - Nowoczesny serwer HTTP i FastCGI > Handlery FastCGI, SCGI i PHPCGI
Handler fcgi służy do obsługi procesów - serwerów FastCGI, np. PHP. Podobny do CGI, lecz znacznie szybszy.
Handler przyjmuje jeden parametr:
Server: definiuje serwer FastCGI NAZWA_HOSTA:PORT
Każdy blok Server przyjmuje dodatkowe parametry:
Interpreter "komenda" - podane polecenie zostanie wykonane, jeżeli nie uda się nawiązanie połączenia z serwerem FastCGI podanym w parametrze "Server". Parametr opcjonalny i dotyczy serwerów FastCGI działających na tej samej maszynie.
Env nazwa_zmiennej "wartość" - Ustawia zmienną środowiskową dla serwera FastCGI
Przykłady
Extension php {
Handler fcgi {
Server localhost:8002 {
Env PHP_FCGI_MAX_REQUESTS "-1"
Env PHP_FCGI_CHILDREN "5"
Interpreter "/usr/bin/php5-fastcgi -b 8002"
}
}
}Extension php {
Handler fcgi {
Server localhost:8002 {
Env PHP_FCGI_MAX_REQUESTS "-1"
Env PHP_FCGI_CHILDREN "5"
Interpreter "/usr/bin/php5-fastcgi -b 8002"
}
Server 192.168.0.13:8002 {
Env PHP_FCGI_MAX_REQUESTS "-1"
Env PHP_FCGI_CHILDREN "5"
}
Server 192.168.0.10:8002 {
Env PHP_FCGI_MAX_REQUESTS "-1"
Env PHP_FCGI_CHILDREN "5"
}
}
}Zmienna PHP_FCGI_CHILDREN jest obowiązkowa dla PHP poprzez FastCGI. Określa ile procesów-dzieci powinno obsługiwać żądania serwera HTTP. PHP_FCGI_MAX_REQUESTS określa maksymalną ilość żądań (domyślnie 500). W przypadku liczby ujemnej serwery będą starały się obsłużyć tyle połączeń ile się da. W przypadku podania limitu dla nadmiarowych żądań zwrócony zostanie błąd 500 - Internal server error.
SCGI
Handler scgi podobny jest do fcgi i służy do komunikowania się z serwerami SCGI. Blok Server posiada zmienne: Interpreter, Env i ErrorHandler [on | off] określa czy traktować błędy SCGI jako błędy serwera.Przykłady
Directory / {
Handler scgi {
Server localhost:4001
}
}Directory / {
Handler scgi {
Server localhost:4002 {
Interpreter "/usr/lib/scgi/my_app1.py 4002"
}
}
}PHPCGI
Handler phpcgi wykonuje skrypty PHP poprzez CGI. Dziedziczy parametry modułu CGI i dodaje dwie nowe - Interpreter oraz:ChangeUser [on | off]: Czy skrypty PHP mają być wykonywane przez użytkownika PHP
Przykłady
Extension php, php4 {
Handler phpcgi
}Extension php4 {
Handler phpcgi {
Interpreter /usr/bin/php4-cgi
}
}
Extension php5, php {
Handler phpcgi {
Interpreter /usr/bin/php5-cgi
}
}- Dodane: 14.07.2008 przez riklaunim