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