nginx check file existense with regexps.

-=Devil_InSide=- devil_inside at mail.ru
Thu Feb 21 17:01:04 UTC 2013


,-----[Валентин Бартенев, 21 February 2013 14:18]:

> On Thursday 21 February 2013 02:07:06 -=Devil_InSide=- wrote:
>> добрый день.
>> 
>> возникла проблема при переезде с одной технологии раздачи файлов на
>> nginx. файлы исторически лежат в дереве вида
>> 
>> http://domain.com/xml/files//10258063/10258063.xml
----------------8<--------------
>> я чтото делаю не так, или же nginx не умеет проверять файлы , используя
>> регулярные выражения?
>> 
> 
> Да. Вы пытаетесь написать регулярное выражение там, где принимается
> простая строка и предполагаете, что nginx будет с радостью сканировать на
> каждый запрос всю ветвь файловой системы, а затем бегать по ним с
> регулярным выражением.
> 
> Если эта директория произвольна и никак не отображается на запрос, то
> какой в ней смысл? Команда mv должна помочь решить эту проблему.
> 

выяснил схему переделывания - все оказалось не так плохо, 
файлы выстраивались 
/opt/xml/files/56/123456/123456.xml 
то есть для пред-директории юзались последние две цифры версии-имени.

обошелся приблизительно так в двух случаях:

rewrite "^/xml/files/(\d+(\d{2}))\.xml$" /xml/files/$2/$1/$1.xml;
и
        if ( $arg_file ~ "[0-9]+(?P<a>[0-9][0-9])"){                                                                                                                                                                                                                                                                                                                                                                                                                                                           
rewrite ^ /xml/files/$a/$arg_file/$arg_file.xml? permanent;                                                                                                                                                                      
}

__________
mpd status:	[playing]
ZZ Top - El Diablo
**************************************
*  jabber:  devil_inside at jabber.ru   *
*   Registered linux user #450844    *
**************************************




Подробная информация о списке рассылки nginx-ru