como excluir o arquivo de cache nginx único?

4

quando acessa http://example.com/ seu espaço em branco, mas funciona bem com http://example.com/index.php Preciso excluir o arquivo de cache nginx para http://example.com/ como fazer isso? Aqui meu cache nginx conf.

    fastcgi_cache_path  /backup/cache levels=1:2 keys_zone=my-cache:1000m inactive=1000m;
    fastcgi_temp_path /backup/cache/tmp 1 2;
    fastcgi_cache_key "$scheme://$host$request_uri";

Como obter o nome do arquivo de cache na pasta / backup / cache?

    
por imastar 29.03.2013 / 01:19

3 respostas

8

um método, por exemplo, mas bastante flexível e versátil

adicione esta linha ao nginx.conf ...

proxy_cache_bypass $http_x_update;

... e você pode a qualquer momento atualizar qualquer uri no cache com simples solicitação http com cabeçalho "magic". por exemplo

curl -s -o /dev/null  -H "X-Update: 1" mydomain.com

ou

curl -s -o /dev/null  -H "X-Update: 1" mydomain.com/some/long/url/

pela segurança e satisfação da paranóia: D você pode mudar o nome do cabeçalho para qualquer blablabla, por exemplo

proxy_cache_bypass $http_x_gangnamstyle;
#proxy_cache_bypass $http_x_mycatsnickname;
#proxy_cache_bypass $http_x_b2ca678b4c936f905fb82f2733f5297f;

e

curl -s -o /dev/null  -H "X-GangnamStyle: 1" mydomain.com
curl -s -o /dev/null  -H "X-mycatsnickname: 1" mydomain.com
curl -s -o /dev/null  -H "X-b2ca678b4c936f905fb82f2733f5297f: 1" mydomain.com
    
por 29.03.2013 / 07:12
2

Você deve ter em algum lugar na sua configuração esta linha,

fastcgi_cache_key *key*;

Você precisa encontrar a chave de lá para sua respectiva URL e, em seguida, calcular o md5 para essa string de chave.

Agora, suponha que o valor md5 chegue a xm ***** p3w, portanto, seu arquivo de cache para a URL é / backup / cache / w / p3 / xm ***** p3w. Agora apague-o como quiser.

A outra maneira automatizada se você tiver o módulo nginx_cache_purge com o seu nginx,

fastcgi_cache_purge CACHEREGION $cache_key;

em que, CACHEREGION é a região de cache definida pela diretiva fastcgi_cache_path e $ cache_key é o valor da diretiva fastcgi_cache_key .

Observação: a diretiva fastcgi_cache_purge é permitida no bloco de localização.

    
por 23.10.2015 / 16:16
0

Outra solução potencial, se você estiver procurando pelo (s) arquivo (s) real (is) no seu sistema de arquivos, será através do diretório cache e imprimir os arquivos um por um desta forma (assumindo que você esteja usando o padrão /var/cache/nginx diretório:

sudo grep -lr 'example.com/' /var/cache/nginx*

Isso deve imprimir a lista de arquivos a serem inspecionados e / ou excluídos:

/var/cache/nginx/0/74/c7de22912j735dc5d2206ffd37ba6740
/var/cache/nginx/d/15/9df468b0z77187f1fc020f9226ac515d
/var/cache/nginx/7/47/8sh3nlkjs8833f83383b67df9a2ca477
    
por 26.10.2018 / 02:29

Tags