На моем веб-сервере есть каталог, содержащий изображения, которые я не хочу кэшировать.
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;
но все это, похоже, не работает.
Я знаю, что это просто, но я просто не могу понять, почему у меня это не работает.
location ^~ /home/somedomain/public_html/site/dontcache/ {
root /home/somedomain/public_html/site/dontcache;
expires epoch;
}
Порядок сопоставления для location
директивы описаны Вот
Попробуй это:
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