Desativar o armazenamento em cache do nginx para imagens em um diretório específico

3

Existe um diretório no meu servidor que contém imagens que eu não quero que sejam armazenadas em cache.

O Nginx é o frontend do Apache. Eu tenho o cache ativado para recursos estáticos no 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;
        }


}

Eu tentei adicionar ao final:

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

Também tentei expires -1; e expires 1m; , mas tudo isso não parece funcionar.

Eu sei que é simples, mas não consigo entender por que isso não funciona para mim.

    
por moogeek 17.08.2011 / 13:59

2 respostas

4

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

A ordem de correspondência das diretivas location está descrita aqui

    
por 17.08.2011 / 18:08
1

Tente isto:

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

Além disso, veja aqui: link

    
por 17.08.2011 / 15:14

Tags