Задать вопрос
savostin
@savostin
Еще один программист

Почему может не кэшировать Nginx в этом случае?

Проксирую запросы на сторонний сервер (не спрашивайте зачем).
http
{
proxy_cache_path /var/lib/nginx/cache/proxy/jpegs levels=1:2 keys_zone=jpegs:100m max_size=1G;
proxy_ignore_headers Expires Cache-Control;
}
....
server {
   location ~ ^/([a-f0-9]+)/(\d+)\.jpg$ {
   proxy_cache jpegs;
   proxy_cache_valid any 1m;
   proxy_cache_valid 404 1m;
   proxy_cache_min_uses 1;
   proxy_cache_key $uri;
   proxy_cache_bypass $cookie_nocache $arg_nocache$arg_comment;
   proxy_hide_header  Set-Cookie;
   if ( -f /path_to/$1 ) { # просто проверочка на доступ
      rewrite ^/[a-f0-9]+/(\d+) /remote_path/$1.jpg break;
      proxy_pass http://remoteserver.com;
      }
   }
}

Картинку показывает, но в папке кэша пусто.
ЧЯДНТ?
  • Вопрос задан
  • 2823 просмотра
Подписаться 1 Оценить 6 комментариев
Решения вопроса 1
savostin
@savostin Автор вопроса
Еще один программист
Кажется нашел причину: remoteserver.com возвращает no-cache и похоже nginx его слушается и не кэширует.
Как это можно обойти? Как я понимаю proxy_cache_bypass относится к запросам клиентов, а не к запросам к remoteserver?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы