我有一个与 Apache 一起使用的 .fcgi 文件,我只需将重写规则指向该文件,它就会完成其工作,但 Nginx 似乎无法像这样工作。
在 Apache 上,我只需将请求重定向到文件。从原始项目 .htaccess 开始:
RewriteEngine On
RewriteBase /matrufsc
RewriteRule ^dispatch\.fcgi/ - [L]
RewriteRule ^(.*)$ dispatch.fcgi/$1 [L]
因此,除了尝试访问 root 之外的每个请求都将路由到 dispatch.fcgi/$request
。但Nginx无法直接执行文件。我必须有哪些替代方法来执行该文件?
这是一个Python脚本,可以过滤请求并根据请求的"file"采取行动。可以看到脚本源码here at GitHub ,对于具有上述 htaccess 的 Apache 来说,它的工作方式如下。我不知道如何使用 FastCGI。
如何从 Nginx 生成 fastcgi 进程?我不知道它或如何更好地描述它。
最佳答案
您将需要使用一个名为 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 的另一个页面。
关于nginx - 如何让 Nginx 生成 fcgi 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22953351/