LINUX.ORG.RU
ФорумAdmin

[nginx] Как принудительно очистить кэш для сайта/URI

 


0

0

Всем привет, есть такой вопрос: как принудительно очистить кэш у nginx`а?

Нашел упоминание о модуле ngx_cache_purge(http://labs.frickle.com/nginx_ngx_cache_purge/), но что-то не понял ни как его использовать ни как он работает :)

поищи в архиве рассылки nginx-ru, там этот вопрос поднимался.

true_admin ★★★★★
()
Ответ на: комментарий от A_Hariton
server {
listen site;
server_name site;
root /var/www/site;

location / {
try_files /cache/$uri @stor;
}

location @stor {
proxy_pass http://servak;
proxy_set_header Host $host;
proxy_store on;
proxy_store_access user:rw group:rw all:r;
proxy_temp_path /var/www/site/cache/;
root /var/www/site/cache/;
}

}

ну и чистим соответственно руками (кроном). перезапускать ничего не нужно

r0mik
()
Ответ на: комментарий от A_Hariton

это отдельный локейшн в котором как раз и указывается куда класть кеш данного вирт.хоста
proxy_pass - куда проксировать proxy_temp_path и root в этом локейшнене указывает куда оно будет складироваться (/var/www/site/cache/)...
потом в рутовом локейшене с помощью try-files будет сделана попытка сначала забрать из кеша, а если там нету файла то оно на прокси передаст (@stor)
так делаете с каждым вашим вирт.хостом, меняя соответствующим образом site_name, root и proxy_temp_path.....
то есть второй (третий) виртхост будет таким:

server { 
   listen mysite2.net; 
   server_name mysite2.net; 
   root /var/www/mysite2.net; 
 
location / { 
   try_files /cache/$uri @stor; 
} 
 
location @stor { 
   proxy_pass http://servak; 
   proxy_set_header Host $host; 
   proxy_store on; 
   proxy_store_access user:rw group:rw all:r; 
   proxy_temp_path /var/www/mysite2.net/cache/; 
   root /var/www/mysite2.net/cache/; 
} 
 
}


таким образом кеши будут отдельно в /var/www/САЙТ/cache/...
вообще это один из вариантов возможных, так как не понятно как оно у вас там сделано. вы бы показали свой конфиг что ли...

r0mik
()
Ответ на: комментарий от r0mik

да нечего мне собственно показываьть, просто есть конфигурация

users -> nginx -> Apache

nginx кэширует ответы от Apache чтобы ему было не так плохо. Нужно сделать возможность мочить кэш сайта при необходимости.

A_Hariton
() автор топика
Ответ на: комментарий от A_Hariton

ну вот, значит я все правильно описал. в таком варианте он будет кешировать и складировать для каждого сайта в отдельное место...

r0mik
()
Ответ на: комментарий от r0mik

эээмм... извиняюсь, вообще-то эта конфа рассчитана на статику, а я что-то не в те дебри залез.
короче вам, по простому говоря, вообще нужно описать только дерективу proxy_temp_path и proxy_cache_path, а store не трогайте)))) ну и перезапускать таки нужно, это да..

вот как у этого чувака - http://www.esupport.org.ua/2009/06/nginx.html только proxy_cache_path пропишите в секции server { } и тогда для каждого сайта оно будет в разные места ложить....

r0mik
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.