关于如何使用FastCGI到CGI包装来使用Nginx来提供Perl代码,有很多教程。 但是我很喜欢使用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/htmlnn"; 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; }
问题是,无论我调用脚本多less次, param返回自启动程序以来第一次被调用的值。 有没有更好的方法来做到这一点? 我也愿意替代CGI.pm
客户端浏览器closures时中断服务器端perl CGI脚本
从网页调用Python脚本
我如何以编程方式重新启动一个系统服务(而不是apache)从Linux中的Apache?
PHP:testing两个双variables给出不同的结果,而不改变variables
截断的输出使用Python瓶0.12.8作为Apache服务器上Windows下的CGI应用程序
Apache 2.2 CGI perl超时,即使定期打印仍然超时
麻烦运行python脚本作为cgi下apache(Ubuntu的12)
我怎样才能从Windows上的Perl CGI脚本分叉后台进程?
禁用Apache服务器的子域上的可执行代码(CGI / SSI / PHP /等)
Internet Explorer 8 + Deflate
CGI :: Fast将为您处理大部分工作,包括设置守护进程。
use CGI::Fast; local $ENV{FCGI_SOCKET_PATH} = ":9000"; local $ENV{FCGI_LISTEN_QUEUE} = 20; while ($q = CGI::Fast->new) { print $q->header; print "<html><body>The foo input is ","</body></html>"; }
另外一个选择是Nginx :: Simple ,它使您可以更好地控制cgi-script-as-daemon的行为。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。