禁用特定目录中图像的 nginx 缓存

禁用特定目录中图像的 nginx 缓存

我的网络服务器上有一个目录,其中包含我不想缓存的图像。

Nginx 是 Apache 的前端。我在 nginx.conf 中启用了静态资源缓存:

server {
    listen 80;
        server_name www.mydomain.com mydomain.com;

        location / {
            root /home/somedomain/public_html/site;
            proxy_pass  http://backend;
            include /etc/nginx/proxy.conf;
        }

        location ~* \.(css|js)$ {
                  root /home/somedomain/public_html/site;
                  add_header  Last-Modified: $date_gmt;
                  expires 1y;
                  access_log off;
        }

        location ~* \.(jpg|jpeg|gif|png|ico|bmp|swf)$ {
                  root /home/somedomain/public_html/site;
                  expires max;
                  access_log off;
        }

        location ~ \.php { 
            proxy_pass  http://backend;
            include /etc/nginx/proxy.conf;
        }


}

我尝试在最后添加:

location /home/somedomain/public_html/site/dontcache/ \.png {
                 root /home/somedomain/public_html/site/dontcache;
                 expires off;
}

也尝试过expires -1;expires 1m;但似乎都不起作用。

我知道它很简单,但我只是不明白为什么它对我来说不起作用。

答案1

location ^~ /home/somedomain/public_html/site/dontcache/ {
  root /home/somedomain/public_html/site/dontcache;
  expires epoch;
}

location描述了指令的匹配顺序这里

答案2

尝试这个:

location /home/somedomain/public_html/site/dontcache/ \.png {
                 root /home/somedomain/public_html/site/dontcache;
                 proxy_no_cache 1;
}

另外,请看这里:http://sysoev.ru/nginx/docs/http/ngx_http_proxy_module.html#proxy_no_cache

相关内容