Назад | Перейти на главную страницу

Отключить кеширование 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; но все это, похоже, не работает.

Я знаю, что это просто, но я просто не могу понять, почему у меня это не работает.

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