Nginx i problem z wydłużonym timeoutem dla FastCGI

Posted by Jarosław Zabiełło Mon, 30 Jul 2007 10:10:00 GMT

Domyślne timeouty Nginxa są dosyć krótkie (60 s.) i czasami trzeba je wydłużyć. Np. podczas aktualizacji dużego forum w PHP gdzie tego typu operację robi się zwykle z poziomu przeglądarki. Przeszukując stronę domową Nginxa i internet znalazłem tylko opis wydłużenia timeoutu dla połączeń proxy (proxy_read_timeout 15m;) Działa to dobrze w wypadku typowych połaczeń proxy, np. Mongrela i Railsów, ale nie działa dla PHP, który używa FastCGI i procesu spawn-fcgi będącego częścią serwera Lighttpd.

Po bezproduktywnej próbie z ustawieniami Nginxa, spróbowałem jego konkurenta, Cherokee. Niestety ten ma jeszcze uboższą dokumentację i nic nie wymyśliłem. W końcu, zrezygnowany, postawiłem Apache2 bo ten nie miał żadnych problemów z dowolnie długo wiszącym procesem (właściwie to wątkiem, bo uruchomiłem wersję wielowątkową). Wystarczyło wydłużyć czasy odpowiedzi w php.ini i poszło.

Ostatecznie, udało mi się uzyskać brakującą informację od Igora Sysojewa, twórcy Nginxa. Rozwiązanie było proste, choć nie znajdowało się w dokumentacji. Trzeba było ustawić: fastcgi_read_timeout 15m; Całe szczęście, bo niezbyt uśmiechało mi się wracać do wolniejszego i bardziej zasobożernego Apache’a.

Tags  | no comments

Comments

(leave url/email »)

   Comment Markup Help Preview comment