O seguinte é uma ideia. Isso resolve o seu problema?
if ($http_cookie ~ "*"){
set $no_cache 1;
}
proxy_cache_bypass $no_cache;
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
O seguinte é uma ideia. Isso resolve o seu problema?
if ($http_cookie ~ "*"){
set $no_cache 1;
}
proxy_cache_bypass $no_cache;