如何使Nginx生成fcgi文件

时间:2014-04-09 05:16:06

标签: nginx fastcgi

我有一个与Apache一起使用的.fcgi文件,我只是将重写规则指向文件并完成它的工作,但似乎Nginx无法像这样工作。

在Apache上,我只是将请求重定向到文件。从最初的项目.htaccess:

RewriteEngine On
RewriteBase /matrufsc
RewriteRule ^dispatch\.fcgi/ - [L]
RewriteRule ^(.*)$ dispatch.fcgi/$1 [L]

因此,除尝试访问root之外的所有请求都将路由到dispatch.fcgi/$request。但是Nginx无法直接执行文件。我有什么替代方法来执行这个文件?

这是一个python脚本,根据请求的"文件"过滤请求并采取行动。您可以看到脚本源here at GitHub,对于具有上述htaccess的Apache,它的工作原理如此。我不知道如何使用FastCGI。

如何从Nginx生成fastcgi进程?我对它没有任何线索或如何更好地描述它。

1 个答案:

答案 0 :(得分:2)

您将需要使用名为fastcgi的模块。

文档在这里FastCGI Module

示例位置

location / {
    fastcgi_pass  localhost:9000;
    fastcgi_index index.php;

    fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name;
    fastcgi_param QUERY_STRING    $query_string;
    fastcgi_param REQUEST_METHOD  $request_method;
    fastcgi_param CONTENT_TYPE    $content_type;
    fastcgi_param CONTENT_LENGTH  $content_length;
}

这也需要运行fastcgi守护程序。这个守护进程的安装取决于你的操作系统。

这是wiki上关于fcgi的另一个页面。

http://wiki.nginx.org/FcgiExample