NGINX try_files不执行脚本

时间:2019-07-30 07:19:57

标签: nginx nginx-config

你好,我在Nginx配置文件中有这个

location ~* ^/storage/(.+)$ {
        try_files $uri                                                                                                                                                                                                                                         
                  /thumb.php?$query_string
                  /images/no-photo.jpg;
    }

我要检查存储文件夹中是否存在图像,如果不存在,请运行thumb生成脚本,如果thumb.php找到原始图像,则返回图像。如果没有原始图像,我希望Nginx返回no-photo.jpg。

但是在这种情况下,Nginx会跳过thumb.php并仅显示no-photo.jpg而不运行脚本。

当我删除最后一部分“ /images/no-photo.jpg”时,运行了thumb.php。

1 个答案:

答案 0 :(得分:0)

对于需求的第二部分,您可以检查来自thumb.php的响应,并在状态404上返回jpeg。

例如:

location /storage/ {
    try_files $uri /thumb.php?$args;
}
location = /thumb.php {
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $request_filename;
    fastcgi_pass ...;

    fastcgi_intercept_errors on;
    error_page 404 =200 /images/no-photo.jpg;
}

有关详细信息,请参见this document