ПРОЕКТЫ 


  АРХИВ 


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]

FastCGI - perl



Приветы!
Вопрос немного не про ингингс, но иного рускогврящего места не нашел.
С недавнего времени как альтернативу мод_перлу решил попробывать связку нгингса 
и фастцги - на перле. За основу разработки был взят найденный в кода, с 
форканьем для каждого запроса, идейный кусок выглядит так:

#****************************************** CODE
use strict;
use FCGI;
use DBI;

$SIG{CHLD}='IGNORE';
$SIG{PIPE}='IGNORE';
*FCGI::DESTROY = sub {};

my $child;
my %env;

my $request = FCGI::Request(\*STDIN,\*STDOUT,\*STDERR,\%env);

while ($request->Accept() >= 0) {
    $request->Detach();
    $child = fork();

    if(!defined $child) { die "fork failed: fork table full or process limit 
reached?"; }

    if($child == 0){
        $request->Attach();
        $request->LastCall();

    print "Content-type: text/plain\r\n\r\n";

        $request->Finish();
        exit(0);
    } else { $request->Finish(); $request = 
FCGI::Request(\*STDIN,\*STDOUT,\*STDERR,\%env); }

}

#****************************************** END
Стартуется: spawn-fcgi -f /data/fcgi.pl -s /var/run/fcgi
Все работает, но с багом. После обработки каждого запроса остается незакрытым 
файловый дескриптор у родителя. Как это можно побороть? Как еще можно заставить 
фастцги параллельно обрабатывать запросы?





 




Copyright © Lexa Software, 1996-2009.