ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Кеширование редиректов - proxy_cache 301



> proxy_cache_path  /opt/nginx-cache-img levels=2:2
> keys_zone=img1:256m inactive=15d;
>
>
> upstream   img_backend  {
>    server   10.1.1.1:8000;
> }
>
> server {
>   location /img/ {
>       proxy_hide_header Set-Cookie;
>       proxy_pass http://img_backend;
>       proxy_cache img1;
>       proxy_cache_valid 301 15d;
>       proxy_cache_valid 200 24h;
>       proxy_cache_key $host$request_uri;
>    }
> }
>
> Делаем два запроса, получаем в логах
>
> 10.0.0.1 - - [06/Sep/2010:14:50:57 +0300] "GET
> /img/1008516/2260large.jpg HTTP/1.0" 301 348 "-" "Opera/9.80 (X11;
> Linux i686; U; ru) Presto/2.6.30 Version/10.61" 10.1.1.1:8000
> 10.0.0.1 - - [06/Sep/2010:14:51:09 +0300] "GET
> /img/1008516/2260large.jpg HTTP/1.0" 301 348 "-" "Opera/9.80 (X11;
> Linux i686; U; ru) Presto/2.6.30 Version/10.61" 10.1.1.1:8000
>
> Последний параметр в логах - $upstream_addr. Т.е. оба раза был запрос
> на апстрим.
>
> По логике и по описанию директива
> proxy_cache_valid 301 15d;
> должна была закешировать 301й редирект на 15 дней, и следующий раз не
> лезть лишний раз на бэкенд, чтобы он сгенерировал редирект. Но
> почему-то этого не происходит.
> Помогите понять почему, и что нужно сделать, чтобы кешировать 301-е ответы?

Разобрался. Как правило всякие фреймворки отдают для редиректов такие заголовки
Pragma: no-cache
Cache-Control: no-cache

И необходима директива
proxy_ignore_headers Cache-control;
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.