首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NGINX,禁用特定文件夹中特定文件类型的缓存。

NGINX,禁用特定文件夹中特定文件类型的缓存。
EN

Stack Overflow用户
提问于 2018-05-15 07:38:01
回答 2查看 15.6K关注 0票数 11

我有一个用于静态内容的-unfortunately Windows服务器(比如产品照片等等)。目前,我已经有了一个全局缓存设置,但现在我只需要对其进行很少的更改。

我有一个文件夹,其中的路径如下所示:

代码语言:javascript
复制
E:\xampp\srv\project-files\projectX\files\users\user-hash\visualisator\views

正如您在路径中看到的那样,用户-散列变量发生了变化。在这个文件夹中,我有需要禁用缓存的*.jpg文件。

我已经尝试过这样的设置(位于其他(全局)位置设置之上):

代码语言:javascript
复制
location ~ /users/ {
   alias "E:/xampp/srv/project-files/projectX/files/users";
   expires -1;
   add_header 'Cache-Control' 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
 }

我一直希望它至少会禁用缓存中的所有文件在这个文件夹和进一步。但我从中得到的唯一结果是http 403

我可以使用来自文件夹users的禁用缓存,如果它能够工作,那么最好的解决方案是禁用整个路径的缓存(包括用户哈希变量),并且只禁用特定的文件类型(*.jpg)。

有什么想法或建议如何实现这一点?PS: NGinx对我来说是新的,我花了8个小时在这个技术上,如果这是个愚蠢的问题,我很抱歉,但我不可能弄清楚,也找不到它。

提前谢谢你!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-15 13:00:42

代码语言:javascript
复制
location ~ .*files/projectX/files/users/.*jpg$ {
          expires -1;
          add_header 'Cache-Control' 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
        }

这就行了。

票数 19
EN

Stack Overflow用户

发布于 2021-03-21 17:21:10

这对我有效,我需要排除的文件是一个PHP文件。也许您可以为您的location ~ .*files/projectX/files/users/.*jpg$使用相同的代码,它也可能工作。我试过了上面的所有样本,还有其他页面。唯一对我有用的就是这个。我的文件是PHP,我必须创建配置文件最后一部分的完整副本。也许换掉你的位置,会对你有用。

代码语言:javascript
复制
location ~ player\.php {
        set $no_cache 1;
            fastcgi_index  index.php;
            include        fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;   
            if (-f $request_filename) {
                # Only throw it at PHP-FPM if the file exists (prevents some PHP exploits)
                fastcgi_pass   unix:/tmp/run/php7-fpm.sock;
                #fastcgi_read_timeout 3600;
            }         
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50344766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档