我的网络服务器上有一个目录,其中包含我不想缓存的图像。
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