ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Замена busylock'ам для proxy cache и proxy store


  • To: nginx-ru@xxxxxxxxx
  • Subject: Замена busylock'ам для proxy cache и proxy store
  • From: "c0re" <nginx-forum@xxxxxxxx>
  • Date: Wed, 30 Nov 2011 04:53:17 -0500
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mickey.jlkhosting.com; s=x; h=Date:Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=wqvae7EF4iwM4lKB/i0jcXJ3Mwsadf03rpYNbAOcbjA=; b=gbiQfDjZdDxQ0d3GBJC/iIqcsfIog3+w1e8En8jk6+fVRb7G4rngrc4CQ+T7+IxZoSADeIDoae0x7+cATzHQKLsmZsyB1sGN+YG9PvWWVhJKpQOiR0mVhHB8sGIe6YMj;

Пробема поднималась неоднократно и у
нас и у буржуев.
Кто не понимает о чем речь - ищите по 'nginx
busylocks'.

workaround для proxy_cache:

http{
    proxy_cache_path /cache keys_zone=localcache:10m;
    limit_zone perUri $uri 10m;
}
server {
        location /remote/ {
                try_files $uri @fake @proxy-remote;
        }
        location @fake {
                root /notexists;
        }
        location @proxy-remote {
                limit_conn perUri 1;
                proxy_cache localcache;
                proxy_cache_valid any 999d;
                proxy_cache_key "remote$request_uri"; # тут
пилить под свои задачи
                proxy_set_header Range ""; # обрезаем Range в
этой секции, иначе не закэширует
                proxy_pass upstream;
                error_page 503 = @locked-remote;
        }
        location @locked-remote {
                # тут пилить под свои задачи.
один из вариантов такой:
                proxy_buffering off;
                proxy_pass upstream;
        }
        # по необходимости плодим
локейшены по образу и подобию (@fake можно
оставить общим для всех)
}

для удобства конфиг продублирован на
http://pastie.org/private/q49fwnwruatcyvzxwbomcg

Для proxy_store то же самое, только без @fake и с
правильным root в /remote/

Естественно это только концепт,
который надо дальше пилить под свои
задачи.
Как это неудивительно - работает.
Воистину, возможности nginx'а
неисповедимы.
Если есть вопросы - добро пожаловать.

icq: 3016467, skype: imperial.roaming

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,219351,219351#msg-219351

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.