nginx proxy_hide_header по-прежнему кэширует заголовок

Я использую nginx с proxy_cache для кеширования некоторых страниц, я установил отдельный блок местоположения обновления, который будет использоваться для обновления определенной записи кэша. Я протестировал это, и он отлично работает для обновления.

Однако он также кэширует заголовок set-cookie (используемый мной фреймворк, Symfony, всегда создает новый cookie сеанса для новых пользователей, даже если они не вошли в систему). Я немного поискал, и, по-видимому, proxy_hide_header должен мне здесь помочь, но он скрывает только заголовок для окончательного ответа, который возвращается клиенту, заголовок все еще кешируется. Я также пробовал это для других заголовков и получил тот же результат. Я также пробовал использовать headers_more_module (more_clear_headers), но это тоже не помогло. Кто-нибудь знает, в чем проблема, или есть альтернатива тому, что я пытаюсь сделать? Я использую nginx 1.11.2, и это конфигурация:

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;
}

Спасибо

2
задан 30 November 2016 в 15:04
1 ответ

Следующее - идея. Решает ли это вашу проблему?

if ($http_cookie ~ "*"){
  set $no_cache 1;
}
proxy_cache_bypass $no_cache;
0
ответ дан 3 December 2019 в 14:20

Теги

Похожие вопросы