Welcome! Log In Create A New Profile

Advanced

Еще раз про кэширование

Александр Кобыченко
September 07, 2009 07:10PM
Здравствуйте Уважаемая рассылка.

Рискую во второй раз задать вопрос про кэширование средствами 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@kobychenko.ru
JID: aleksandr@kobychenko.ru
Subject Author Posted

Еще раз про кэширование

Александр Кобыченко September 07, 2009 07:10PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 307
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready