При выполнении Perl с FastCGI-оболочкой в ​​nginx, получаю ли я преимущество в скорости? - PullRequest
2 голосов
/ 13 августа 2010

Я использую nginx с этим сценарием в качестве оболочки FastCGI, с которой я начинаю:

spawn-fcgi -F 3 -u www-data -s /var/run/perl-fcgi.sock -P /var/run/perl-fcgi.pid -- ./perl-fcgi.pl

Теперь предположим, что у меня есть простой сценарий:

#!/usr/bin/perl

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

Скрипт работает нормально, и я вижу "привет", когда запрашиваю /text.pl.Но, как вы можете видеть в строке 106 оболочки FastCGI, скрипт выполняется с помощью exec (), поэтому он в основном выполняется в собственной среде Perl.Разве это не разрушает всю концепцию FastCGI, когда у меня нет уже инициализированного скрипта, но я вызываю его независимо?

Каков предпочтительный способ взаимодействия через FastCGI в nginx?

Cheers, --polemon

PS: spawn-fcgi - это программа из lighttpd, которая запускает обертки FCGI и связывает их с сокетом.

1 Ответ

4 голосов
/ 13 августа 2010

Да, это разрушает всю концепцию FCGI, но по замыслу.

Используемый сценарий представляет собой адаптер FCGI для CGI, разработанный для устранения преднамеренной неспособности ngnix обслуживать сценарии CGI.

Чтобы использовать FCGI «правильно», просто укажите ngnix на свой сценарий, поддерживающий FCGI. С другой стороны, если ngnix может общаться с этим адаптером FCGI-CGI, вы знаете, что он может общаться с другим сценарием FCGI. Конкретная конфигурация сервера, вероятно, является вопросом для ошибки сервера.

...