Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Еще раз про кэширование
Здравствуйте Уважаемая рассылка.
Рискую во второй раз задать вопрос про кэширование средствами nginx.
Обрисую задачу.
Имеется сайт с изображениями, эти изображения подгоняются под размер
экранов мобильных телефонов.
Сейчас я скриптом генерирую картинку и отдаю пользоватею, а
сгенерированнаую картинку кладу в папочку, и при следующем обращении к
ней я смотрю наличие файла и отдаю его на прямую если он есть (ну
довольно банальная схема). Но от этого хотел бы уйти, ибо в этой
папке скапливается громадное колличество файлов, хотя многие из них
запрашиваются всего один раз.
Хотелось бы чтобы сгенерированные картинки некоторое время хранились в
кэше nginx и по истечении времени удалялись.
Некоторые куски моего конфига
http {
...
proxy_cache_path /usr/nginx/cache levels=1:2 keys_zone=zone1:10m
inactive=3600m max_size=1024m;
...
server {
listen IP:80;
server_name ***.ru www.***.ru;
location /t_img.php {
proxy_cache zone1;
proxy_cache_min_uses 1;
proxy_pass http://IP:8080;
proxy_redirect http://IP:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location ~* ^/files/t_img/ {
#if (!-f $request_filename) {
rewrite
^/files/t_img/([0-9]*)-([0-9]*)-(((?!\/).+)\.jpg)$
/t_img.php?id=$1&size=$2&img=$3 last;
#}
}
location / {
proxy_pass http://IP:8080;
proxy_redirect http://IP:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location ~*
^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$
{
root /usr/home/www/***.ru;
error_page 404 = @fallback;
}
location @fallback {
proxy_pass http://IP:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
t_img.php собственно обрабатывает пришедший от пользователя запрос и
отдает картинку, после чего кладет ее в папку.
При такой схеме у меня кэширование не работает, потому что я вижу что
файлы в папке как продолжали появляться, так и появляются, а в папке с
кэшем nginx создаются дирректории, но они пустые, в них нету временных
файлов.
Помогите нарисовать правильную схему работы.
--
С уважением, Аленсандр К.
aleksandr@xxxxxxxxxxxxx
JID: aleksandr@xxxxxxxxxxxxx
|