Я хочу указать отсутствие кеширования для некоторых ответов от моего восходящего сервера (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?