ПРОЕКТЫ 


  АРХИВ 


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]

кэширование только опреде ленных типов


  • To: nginx-ru@xxxxxxxxx
  • Subject: кэширование только опреде ленных типов
  • From: "F0iL" <nginx-forum@xxxxxxxx>
  • Date: Tue, 22 Jun 2010 04:32:36 -0400
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mickey.jlkhosting.com; s=x; h=Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To:Date; bh=WEnDHRnhH3QBQq89L5tIlyPqcBt6yXUyO0ycSsYTHKA=; b=KHQUh3nl8TV50PNBTT5po7BWoBbf5T8fi7f9KReESSg+gpomlYdrV8BV+SxF2tJio+N5pqtXAs2RRkeXPLwUXcQyLQBocRRdpZljUmZzZ5LVMxpxzW2na/HJlcH8UJ5z;

Уважаемые, подскажите пожалуйста
решение следующего вопроса:
nginx - фронтенд, apache - бэкенд.
допустим, мне надо кэшировать только
некоторые типы файлов (графика и
статика), а остальное передавать
напрямую и без кэширования.
как реализовать?

очевидный на первый взгляд вариант:

location / {
proxy_pass ....
}

location ~* ^.+\.(ico|jpg|jpeg|gif|js|png|htm|html)$ {
include cache_on.inc;
proxy_pass ....
}

не прокатывает по причине того, что
proxy_pass не может быть под регулярным
выражением.

Была мысль при совпадении условия
(регулярного выражения) делать rewrite
куда-нибудь например на /ngncahce/....
а для него уже включать кэширование, но
там проблема в том, что движок успешно
переписывает выражение, повторяет
обработку снова, натыкается на свое же
условие (рег. выр.) и снова делает
реврайт, и так до бесконечности.
break ставить нельзя, т.к. тогда, само
собой, не сработает proxy_pass дальше.

была задумка сделать проверку на два
условия - на совпадение расширения
файла (рег. выражение) и на наличие ngncache
в урле (т.е. что его уже переписали), но
как я поял, скриптовый движок nginx не
умеет операцию AND для условий в if, то
есть сразу два условия поставить
нельзя.

Подскажите, как реализовать желаемое?

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


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


 




Copyright © Lexa Software, 1996-2009.