Re: Настройка кеширование
Shestera S Leonid
shestera at gmail.com
Thu Apr 30 19:36:06 MSD 2009
Сделал конфиг:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=one:60m
inactive=1d ;
server {
listen 80;
server_name db;
root /db/;
location /server/ {
proxy_cache one;
proxy_cache_valid 200 302 30m;
proxy_cache_valid 404 1m;
proxy_cache_min_uses 1;
proxy_cache_use_stale error timeout invalid_header
http_500 http_502 http_503 http_504;
access_log /var/log/nginx/db-proxy-access.log;
proxy_pass http://db;
}
}
То ко вот в кеш ничего не пишеться
ls -la /var/cache/nginx/
итого 8
drwx------ 2 nobody root 4096 Апр 30 16:49 .
drwxr-xr-x 10 root root 4096 Апр 30 16:49 ..
что я неправильно сделал?
запросы приходят формата
217.199.217.10 - - [30/Apr/2009:19:36:20 +0400] "GET
/server/?user=ae23297&host=site.ru&charset=utf-8&uri=/ HTTP/1.1" 200
30 "-" "Mozilla/4.0 (uCoz Web Services)"
2009/4/30 Igor Sysoev <is at rambler-co.ru>:
> On Thu, Apr 30, 2009 at 03:49:53PM +0400, Sergey Shepelev wrote:
>
>> Нужно заменить этот proxy_pass на memcache_pass.
>> И отдельным скриптом каждые полчаса класть контент в мемкеш с без
>> времени протухания. Когда база упадёт, скрипт просто не обновит кеш,
>> nginx будет раздавать старые данные.
>>
>> Если все запросы вы перечислить не можете, то нужно вместо linkfeed-db
>> проксировать на свой микроскрипт, который
>> - каждые полчаса спрашивает linkfeed-db и кладёт результат в мемкеш
>> без времени протухания
>> - всё остальное время просто достаёт результат из мемкеша.
>
> Не нужно использвать memcached там, где вполне достаточно proxy_cache.
>
>> 2009/4/30 Shestera S Leonid <leonid at shestera.ru>:
>> > Здравствуйте.
>> >
>> > Есть текущая самоя бональная схема
>> >
>> > location /server/ {
>> > proxy_pass http://linkfeed-db;
>> > }
>> >
>> > Хотелосьбы сюда вставить кеширование.
>> > Задачи
>> > 1. Если пришёл запрос то отдавать с беканда, и класть ответ в кеш на 30 мин
>> > 2. При повторном запросе в течении 30 мин отдавать из кеш
>> >
>> > Это реализовать не сложно.
>> >
>> > А вот как дальше.
>> > 3. Если упала база на основании которой гинерит беканд, то 30 мин он
>> > будет отдавать из кеша, а потом как я понял nginx удалит его
>> >
>> > Как реализовать чтобы nginx не удалял кеш, пока не будет корректно
>> > работать бекенд?
>> >
>> > Зарание спасибо за помощь.
>> >
>
> --
> Игорь Сысоев
> http://sysoev.ru
>
>
More information about the nginx-ru
mailing list