Opened 13 years ago

Closed 13 years ago

#11 closed defect (invalid)

Неожиданный отказ от кэширования.

Reported by: openid.yandex.ru/keeper-andrew Owned by: somebody
Priority: critical Milestone:
Component: nginx-module Version: 1.0.x
Keywords: cache location Cc:
uname -a: Linux sectokyo.com 2.6.18-194.32.1.el5 #1 SMP Wed Jan 5 17:52:25 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
nginx -V: nginx: nginx version: nginx/1.0.6
nginx: built by gcc 4.1.2 20080704 (Red Hat 4.1.2-50)
nginx: TLS SNI support disabled
nginx: configure arguments: --prefix=/etc/nginx/ --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwcgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6

Description

Имеется конфигурация сервера. Вот две его части:

location = / {
proxy_cache cache_page;
proxy_cache_key $scheme$host;
proxy_cache_valid 1m;

proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504 http_404;

proxy_pass http://127.0.0.1:8280;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_redirect default;
proxy_buffering on;
}

location = /carDescription.htm {
proxy_cache cache_page;
proxy_cache_key $scheme$host$request_uri;
proxy_cache_valid 15s;

proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504 http_404;

proxy_pass http://127.0.0.1:8280;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_redirect default;
proxy_buffering on;
}

Как видно, разницы практически никакой. Оба параметра: proxy_cache_bypass и proxy_no_cache не прописаны вообще нигде. Тоесть посути должны кэшироваться оба локэйшена. Но корневая страница не кэшируется и не возвращается при отключенном бакэнде. в отличие от carDescription.html

Прописывание фейковых proxy_cache_bypass и proxy_no_cache проблему не решает. Не можем запустить fail-safe конфигурацию из-за этого бага.

Хелп плиз! Спасибо.

Change History (1)

comment:1 by Maxim Dounin, 13 years ago

Resolution: invalid
Status: newclosed

Кеширование зависит не только от параметров, прописанных в конфиге, но и от ответа бекенда. Скорее всего для корневой страницы бекенд возвращает заголовки, из-за которых кеширование запрещается, e.g. "Expires", "Cache-Control", "Set-Cookie".

Эти заголовки можно проигнорировать с помощью директивы proxy_ignore_headers (в случае "Set-Cookie" следует также использовать proxy_hide_headers, в противном случае одна и та же кука будет ставиться всем пользователям, получившим закешированную страницу).

Пожалуйста, в дальнейшем для получения помощи обращайтесь в список рассылки.

Note: See TracTickets for help on using tickets.