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"
      }
   } 
}
Powyższy przykład prezentuje podstawowe wykorzystanie tego handlera. Jeżeli nie uda się połączyć z serwerem PHP na porcie 8002 wykonana zostanie komenda uruchamiająca serwer na podanym porcie.
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"
      }
   } 
}
Powyższy przykład pokazuje opcję wykorzystania kilku serwerów FastCGI. W przypadku serwerów na innych maszynach cherokee nie może zajmować się uruchamianiem ich.

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"
      }
   }
}
Powyższe dwa przykłady obrazują wykorzystanie tego handlera. Drugi zawiera parametr Interpreter - podane polecenie/plik zostanie wykonane, gdy wskazany serwer SCGI nie odpowie.

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


Biblioteka Riklaunima. Hosting NRC-FOSS na AU-KBC. Serwis oparty o Django/Python.