Кэширование: зацикливается на 301 при получении статических картинок

squirl andriy.tovstik на gmail.com
Сб Янв 16 13:58:35 MSK 2010


Здравствуйте.

Пытаясь разгрузить некоторый проект, сделал следующим образом:

----
http {
    include       mime.types;
    default_type  application/octet-stream;

    client_max_body_size 10M;
    sendfile        on; 
    proxy_redirect          off;
    proxy_next_upstream     timeout error http_500 http_503;

    proxy_set_header        Host             $host;
    proxy_set_header        X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_cache_path  /home/nginx/cache  levels=1:2   keys_zone=mycache:50m;
    proxy_temp_path /home/nginx/temp_cache_path;
<..skip...>    
server {
            listen *:80;
            server_name     rtkorr.com www.rtkorr.com rtkor.com www.rtkor.com  rtcorr.com www.rtcorr.com rtkorr.net www.rtkorr.net;
            access_log  /home/nginx/log/rtkorr.com-access.log;
           proxy_read_timeout 10;
            error_log   /home/nginx/log/rtkorr.com-error.log;
            location / {
                proxy_cache rtkorr;
                proxy_cache_valid 200 30s;
                proxy_pass  http://mycache;
            }

            location ~* /(manager|register|cabinet|captcha|comments|ajax) {
                 proxy_pass http://mycache;
            }

            location ~* \.(gif|jpg|jpeg)$  {
                access_log /home/nginx/log/rtkorr.com-img.access.log;
                error_log /home/nginx/log/rtkorr.com-img.error.log;
                proxy_cache mycache;
                proxy_cache_valid  200 301 304 302 15m;
                proxy_pass http://rtkorr_com;
                error_page 404 502 503 504 = @fallback;
            }

            location @fallback {
                expires 0;
                add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
                add_header Pragma "no-cache";
                empty_gif;
            }
        }
-------

Возникла следующая проблема: некоторые картинки не отображаются. при попытке открыть их в браузере - отдается:

"Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится."

firebug показывает несколько раз подряд отдающийся 301, после чего обрывает попытки. Пример картинки:

http://www.rtkorr.com/imgs/ico_rss.gif

Т. е. где-то я с кэшированием намудрил, ибо напрямую из апача отдается нормально. Где я неправ?
---
WBR, Andriy Tovstik
UNIX System Administrator
Skype: andriy.tovstik
JabberID: squirl на jabber.kiev.ua
Nick-handle: SQ22-UANIC






Подробная информация о списке рассылки nginx-ru