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.


Kanały IRC![[Dilber w Onecie]](/images/larry.png)

