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
|