Назад | Перейти на главную страницу

Nginx 0.67 игнорирует Cache-Control: нет кеширования от прокси-сервера верхнего уровня

Я хочу указать отсутствие кеширования для некоторых ответов от моего восходящего сервера (Pylons), чтобы пользователи не могли получить доступ к кэшированному контенту после выхода из системы. Для этого я возвращаю заголовок без кеша согласно документации nginx. В частности, этот:

Cache-Control: max-age=0, must-revalidate, no-cache, no-store

Nginx все равно возвращает кешированный ответ, игнорируя мой заголовок. Есть идеи, почему?

Спасибо, Рик

журнал изменений nginx для 0.7.48 упоминается исправление:

Исправление: теперь nginx учитывает строки заголовка «X-Accel-Expires», «Expires» и «Cache-Control» в ответе серверной части.

Нет, вообще не использую эту директиву. Вот конфиг:

worker_processes  1;

error_log  logs/error.log;
pid        logs/nginx.pid;

events {
  worker_connections  1024;
}

http {
  include       mime.types;
  default_type  application/octet-stream;

  access_log  logs/access.log;

  sendfile        on;

  keepalive_timeout  65;
  tcp_nodelay        on;

  gzip  on;
  gzip_disable "MSIE [1-6]\.(?!.*SV1)";
}
server {
    listen       80;
    server_name  site.com;
    server_name_in_redirect off;
    client_max_body_size 11M;


    location ^~ /members/ {
             proxy_pass http://127.0.0.1:5010;
    }

    location ^~ /login/ {
             rewrite ^ https://$host$request_uri permanent;
    }


    error_page    404  /error/404.html;
    error_page    500 502 503 504  /error/500.html;
}

Возможно, вы используете proxy_ignore_headers:

proxy_ignore_headers "Cache-Control" "Expires";

Прокомментируйте или удалите эту строку.

Я бы использовал опцию «private» для управления кешем, с другой стороны, nginx не кеширует, если вы не укажете параметры конфигурации proxy_cache, вы уверены, что кеширование выполняется в nginx?