Назад | Перейти на главную страницу

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 не был найден, поскольку его действительно не существует (или был удален после пробного использования).

Видимо это SCRIPT_FILENAME не SCRIPT_NAME.