nginx:将 fastcgi php 输出存储为文件

nginx:将 fastcgi php 输出存储为文件

我正在尝试保存 fastcgi 的输出,但似乎得到了空白输出。

如果用户请求文件/thumbnail/someuniquefilename.jpg,并且文件存在,它应该直接提供该文件。如果不存在,它应该通过 fastcgi 使用自定义 GET 查询字符串获取它。所以,我现在有这样的情况:

location ~ ^/thumbnail/ {
    root /var/www/html;
    expires 24h;
    error_page 404 = @fetchthumbnail;
}
location @fetchthumbnail {
    fastcgi_pass    php;
    fastcgi_store   on;
    fastcgi_store_access    user:rw group:rw all:r;
    fastcgi_temp_path   /var/www/temp;
    fastcgi_param SCRIPT_NAME /var/www/html/thumbnailer.php;
    fastcgi_param QUERY_STRING src=/actual/path/$request_filename;
}

但结果我似乎得到了一张空白页。

响应标头:

Accept-Ranges:bytes
Cache-Control:max-age=86400
Connection:keep-alive
Content-Length:0
Content-Type:image/jpeg
Date:Sat, 29 Mar 2014 09:11:30 GMT
ETag:"53368d3d-0"
Expires:Sun, 30 Mar 2014 09:11:30 GMT
Last-Modified:Sat, 29 Mar 2014 09:07:09 GMT
Server:nginx/1.4.5

我做了一些额外的测试。看来 thumbnailer.php 实际上并未运行。因此,响应为空白。

错误日志仅显示thumbnail/someuniquefilename.jpg未找到,因为它实际上不存在(或试用后被删除)。

答案1

显然SCRIPT_FILENAME不是SCRIPT_NAME

相关内容