nginx proxy_hide_header ainda armazena em cache o cabeçalho

2

Estou usando o nginx com proxy_cache para armazenar algumas páginas em cache, configurei um bloco de localização de atualização separado para usar na atualização de uma entrada de cache específica. Eu testei isso e funciona bem para atualizar.

No entanto, ele também armazena em cache o cabeçalho set-cookie (a estrutura que eu uso, Symfony, sempre cria um novo cookie de sessão para novos usuários, mesmo que eles não estejam logados). Eu pesquisei um pouco e aparentemente proxy_hide_header deveria me ajudar aqui, mas ele apenas oculta o cabeçalho para a resposta final que é retornada ao cliente, o cabeçalho ainda é armazenado em cache. Eu também tentei isso para outros cabeçalhos e tive o mesmo resultado. Eu também tentei usar o headers_more_module (more_clear_headers), mas isso também não ajudou. Alguém sabe qual é o problema aqui, ou tem uma alternativa para o que estou tentando fazer? Estou usando o nginx 1.11.2 e esta é a configuração:

location ~ /refresh(/.*) {
    allow 127.0.0.1;
    deny all;

    rewrite ^/refresh?(/.*)$ $1 break;

    proxy_hide_header "Set-Cookie";
    proxy_ignore_headers "Set-Cookie" "Vary";

    proxy_cache FOS_CACHE;
    proxy_pass http://localhost:8080;
    proxy_set_header Host $host;
    proxy_cache_key $uri$is_args$args;
    proxy_cache_valid 200 1m;

    proxy_cache_bypass 1;

    access_log /var/log/nginx/cache_refresh.log cache_info;
}

Obrigado

    
por GoldnEagle 30.11.2016 / 14:04

1 resposta

0

O seguinte é uma ideia. Isso resolve o seu problema?

if ($http_cookie ~ "*"){
  set $no_cache 1;
}
proxy_cache_bypass $no_cache;
    
por 30.11.2016 / 17:51

Tags