Nginx 从不同文件夹缓存静态文件

Nginx 从不同文件夹缓存静态文件

问题是 nginx 不显示图像,并且在某些文件夹上显示 404 未找到。当我从配置中删除缓存时,一切正常。尝试使用此配置将 nginx 配置为缓存静态文件

location ~* \.(?:css|cur|js|jpg|jpeg|webp|gif|htc|ico|png|html|xml|otf|ttf|eot|woff|woff2|svg)$ {

                expires 1y;
                access_log off;
                add_header Cache-Control "public";
                tcp_nodelay off;
                open_file_cache max=3000 inactive=120s;
                open_file_cache_valid 45s;
                open_file_cache_min_uses 2;
                open_file_cache_errors off;
}
        # pass PHP scripts to FastCGI server
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
                include fastcgi_params;
                fastcgi_intercept_errors on;
        }
  location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

这是错误日志

    2021/08/17 11:08:10 [error] 278986#278986: *3642 open() "/var/www/website/public/cache/medium/product/347/rC0dMIdOJIJNSmpKgm9pVqKVE59HKAl8SKujwxHF.jpg" failed (2: No such file or directory), client: 95.85.108.178, server: ozan.com.tm, request: "GET /cache/medium/produ
ct/347/rC0dMIdOJIJNSmpKgm9pVqKVE59HKAl8SKujwxHF.jpg HTTP/2.0", host: "www.website.tm", referrer: "https://www.website.tm/"

nginx 显示来自源的图像: https://website.tm/storage/velocity/category_icon_path/77/5wiasmLf6hQGAsjsTV4jXsjnG0ELm5ak0rgpV7c2.png

nginx 不显示来自: https://website.tm/cache/medium/product/353/jtTzvdT8ZmB6Lu7wFKj969Uzj0qqu1qRUt2CxEbz.jpg

答案1

您的图像位置块缺少try_files指令,该指令告诉 nginx 应该为到达该位置的请求提供什么服务。

添加

try_files $uri $uri/ =404;

location街区。

相关内容