Re: проблема с кэшированием
Igor Sysoev
igor на sysoev.ru
Пн Июн 14 00:25:57 MSD 2010
On Fri, Jun 11, 2010 at 02:35:23PM +0300, Alex Smorodin wrote:
> Ох.в общем всю логику передал. Чтобы не выносить страницы, где передаются
> куки, в отдельный локейшн, вместе с Set-Cookie одновременно делаем
> proxy_ignore_headers "Cache-Control", тогда nginx не кэширует страницу.
> Все работает хорошо, но при автоматическом тестировании ловим такое:
> переменная кука session попадает в ключ.
> server {
> listen 192.168.0.32:9181;
> server_name domain.com;
> access_log /var/log/nginx/domain.com/nginx-access.log combined;
> error_log /var/log/nginx/domain.com/nginx-error.log error;
> proxy_temp_path /var/cache/nginx/domain.com;
> location / {
> proxy_pass http://192.168.0.32:81;
> proxy_set_header Host domain.com;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_next_upstream error timeout invalid_header http_500 http_503;
> proxy_cache one;
> proxy_cache_key
> $host$uri?$args|$cookie_session|$cookie_username|$cookie_username|;
> proxy_no_cache $cookie_session $cookie_username
> $http_x_requested_with;
> proxy_pass_header Set-Cookie;
> proxy_ignore_headers "Expires";
> proxy_cache_valid 200 301 302 304 1h;
> }
> ключ в кэше получается вида:
> 192.168.0.32/blabla?|02e3927ebc95993e6adf59ab7072bf1c|||
> Вопрос: как переменная cookie_session может попадать в ключ (очень редко,
> но проскакивает), если она указана в параметре proxy_no_cache?
А в таких ответах есть Cache-Control или X-Accel-Expires ?
proxy_no_cache запрещает использовать уже закэшированный ответ, но
сам ответ может быть закэширован, если в нём есть X-Accel-Expires,
Cache-Control или Expires.
--
Игорь Сысоев
http://sysoev.ru
Подробная информация о списке рассылки nginx-ru