nginx check file existense with regexps.

Vadim Lazovskiy vadim.lazovskiy at gmail.com
Thu Feb 21 18:08:47 UTC 2013


Здравствуйте.

Правильней, было б как-то так:


location ~ ^/xml/files/(?<doc>\d+)/\d+(?<doc_path>\d{2}).xml$ {
     alias /opt/xml/files/$doc_path/$doc.xml;
}


21 февраля 2013 г., 21:01 пользователь -=Devil_InSide=- <
devil_inside at mail.ru> написал:

> ,-----[Валентин Бартенев, 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 mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>



-- 
Best Regards,
Vadim Lazovskiy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20130221/89edb3a4/attachment-0001.html>


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