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