nginx proxy_no_cache não funciona

2

Estou tentando configurar um proxy reverso de armazenamento em cache com 2 condições; se um dos dois for atendido, ele não deverá armazenar o arquivo da origem:

  • solicitação parcial de conteúdo
  • solicitação com string de consulta

Conforme configurado abaixo, eu obtive o nginx para NÃO armazenar solicitações de conteúdo parcial.
No entanto, ele ainda está armazenando solicitações com string de consulta. O que estou perdendo aqui?

curl -r 1000-2000 http://edge.com/data/abcdef.dat [OK. Nenhum arquivo armazenado.]
wget http://edge.com/data/abcdef.dat?query=string [Não está OK. abcdef.dat armazenado na borda.]

location /data/ {
    set $originuri /origin$uri$is_args$args;
    errorpage 404 = $originuri;
}

location /origin/ {
    proxy_pass http://origin.com:1111;
    proxy_store /mnt1/edge/store;
    proxy_temp_path /mnt1/edge/tmp;
    proxy_set_header If-Range $http_if_range;
    proxy_set_header Range $http_range;
    proxy_no_cache $http_range $http_if_range $is_args;
}
    
por nginx-noob 06.09.2012 / 06:22

1 resposta

0

Se eu estiver lendo sua configuração correta, quando você passar a solicitação para o local de origem para o proxy, você está construindo uma string de URI que não inclui uma string de consulta GET (ou seja, você está nivelando o $args ). Se é isso que está acontecendo, isso explicaria porque o local de origem não está vendo $is_args como verdadeiro.

Este é um palpite da minha parte - gostaria de ver os logs de solicitações para ver se estão corretos.

    
por 20.09.2012 / 16:08