Re: nginx свои переменные

Igor Sysoev igor на sysoev.ru
Пн Янв 16 09:53:40 UTC 2012


On Mon, Jan 16, 2012 at 09:52:17AM +0700, Igor Vavrjin wrote:
> 16.01.2012 02:18, Aleksandr Sytar пишет:
> > 15 января 2012 г. 19:35 пользователь "Боня"<nginx-forum at nginx.us>  написал:
> >> Здравствуйте. Прошу прощение, если
> >> вопрос уже подымался. Я не нашёл
> >> ответа.
> >>
> >> Задача следующая мне нужно создать
> >> переменную , а потом при необходимости
> >> поменять её значение. Следующий код
> >> конечно не работает, но наглядно
> >> демонстрирует чего я хочу:
> >>
> >> Здравствуйте.
> >> server {
> >>   ...
> >> set $rootPath "C:/apach/www";
> >>
> >> location /music/ {
> >> $rootPath =  "D:/www/music";
> >> }
> >>
> >> location /video/ {
> >> $rootPath =  "D:/www/video";
> >> }
> >>
> >> location ~* \.(flv|mp3)$ {
> >> root $dirPath;
> >> }
> >> ...
> >> }
> >>
> > Как-то так наверно (на рабочесть не проверялось)
> >
> > server {
> >    root "C:/apach/www";
> >
> > location /music/ {
> >      root "D:/www/music";
> >      location ~* \.(flv|mp3)$ {
> >           ....
> >      }
> > }
> >
> > location /video/ {
> >      root "D:/www/video";
> >      location ~* \.(flv|mp3)$ {
> >           ....
> >      }
> >    }
> > }
> Можно вот так попробовать:
> 
> set $root "C:/apach/www";
> 
> root $root;
> 
> if ($uri ~* "^/music") {
>    set $root "D:/www/music";
> }
> 
> if ($uri ~* "^/video") {
>    set $root "D:/www/video";
> }
> 
> location ~* \.(flv|mp3)$ {
>    root $root;
> }
> 
> Но вот не знаю насколько это вписывается в концепцию nginx.

Очень плохо.
"if ($uri ..." означает, что в этом месте должен быть location.


-- 
Igor Sysoev



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