ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Re[2]: зукьшыышщт



On Sun, 13 Nov 2005, [Windows-1251] Антон wrote:

d> А можно вопрос - зачем spawn-fcgi? Или я чего-то непонял - но ведь
d> если собрать php --width-fastcgi, он и сам висит, порт слушает,
d> и nginx напрямую с ним работает

Можно, пробовал, но:
1. было два неприятных глюка:
а. При хоть сколько серьезной нагрузке время отклика пхп становилось
 непомерно большим(скрипт обрабатывался быстро, но перед этим видимо
 стоял в очереди секунд по 10-40).
б. PHP почему-то любил падать в кору после каждых N скриптов, вне
 зависимости от нагрузки(ночью редко, днем постоянно), nginx при этом
 отдавал юзерам Bad Gateway, у меня откликов от юзеров было много,
 хотя PHP и перезапускался в цикле).
со spawn-fcgi этих проблем не возникает, т.к. демонов стартует
несколько и они почему-то толи не падают, толи запрос от упавшего
уходит на работающий.

PHP можно запускать так:

PHP_FCGI_CHILDREN=4 PHP_FCGI_MAX_REQUESTS=100000 php -b port

тогда он запустит 4 процесса и будет выходить после 100000 запросов.
Хотя у меня тоже сложилось впечатление, что с spawn-fcgi работать будет
стабильнее.

2. коннекты можно мапить только на порт. spawn-fcgi умеет сокеты.

А это можно вылечить с помощью прилагаемого патча.


Игорь Сысоев
http://sysoev.ru
--- sapi/cgi/cgi_main.c Thu Jan 20 16:39:51 2005
+++ sapi/cgi/cgi_main.c Thu Jan 20 16:42:18 2005
@@ -1145,7 +1145,7 @@
                 * path (it's what the fastcgi library expects)
                 */
                
-               if (strchr(bindpath, ':') == NULL) {
+               if (strchr(bindpath, ':') == NULL && strchr(bindpath,'/') == 
NULL) {
                        char *tmp;
 
                        tmp = malloc(strlen(bindpath) + 2);


 




Copyright © Lexa Software, 1996-2009.