2

このスクリプトで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 を要求すると「hello」が表示されます。しかし、FastCGI ラッパーの 106 行目でわかるように、スクリプトは exec() で実行されるため、基本的に独自の Perl 環境で実行されます。まだ初期化されたスクリプトを持っていないのに、それを個別に呼び出すと、FastCGI の概念全体が台無しになりませんか?

nginx で FastCGI を介して対話する好ましい方法は何でしょうか?

乾杯、--ポレモン

PS: spawn-fcgiは lighttpd のプログラムで、FCGI ラッパーを起動してソケットにバインドします。

4

1 に答える 1

4

はい、それは FCGI の概念全体を台無しにしますが、設計によるものです。

使用しているスクリプトは FCGI から CGI へのアダプターであり、ngnix が意図的に CGI スクリプトを提供できないことを回避するように設計されています。

FCGI を「適切に」使用するには、ngnix を FCGI 対応スクリプトに向けるだけです。利点として、ngnix がこの FCGI-CGI アダプターと通信できる場合、別の FCGI スクリプトと通信できることがわかります。特定のサーバー構成は、おそらく serverfault の質問です。

于 2010-08-13T04:44:47.120 に答える