Существует множество учебных пособий по использованию оболочек FastCGI для CGI для обслуживания кода Perl с использованием nginx.Но мне комфортно работать с модулями Perl, поэтому мне не нужна оболочка.Я пытаюсь найти правильный способ настроить это.Вот код, который у меня есть:
#!perl
use CGI;
use FCGI;
my $s = FCGI::OpenSocket(':9000',20);
my $r = FCGI::Request( \*STDIN, \*STDOUT, \*STDERR,
\%ENV, $s);
while ($r->Accept >= 0) {
my $cgi = CGI->new;
print "Content-type: text/html\n\n";
print "<html><body>The foo input is ", $cgi->param('foo'), "</body></html>";
$r->Finish;
}
И включите его в nginx примерно так:
location /foo {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.pl;
}
Проблема в том, что независимо от того, сколько раз я вызываю скрипт, param
возвращает то же значение, которое было передано при первом вызове с момента запуска программы.Есть ли лучший способ сделать это?Я также открыт к альтернативам CGI.pm
.