Re: Помогите с конфигом

Валентин Бартенев ne на vbart.ru
Вс Фев 19 19:56:57 UTC 2012


On Sunday 19 February 2012 23:34:30 Дмитрий Жильцов wrote:
> Здравствуйте.
> 
> Помогите пожалуйста решить следующую задачку.
> 
> Дано.
> 
> 1. Структура каталогов и файлов
>     /opt/mp3/$trackID.mp3
>     /opt/wav/$trackID.wav
>     /opt/fadeout/$trackID.mp3
> 2. $trackID - уникальный номер трека. Треки с одним ID по сути одни и
> теже треки( по содержанию) но разные по формату , по этому лежат в
> разных диреториях на сервере.
> 
> Задача.
> 
> Необходимо отдавать эти треки по http по следующим URL
>  http://site.com/listen/$trackID/mp3/
>  http://site.com/listen/$trackID/mp3/fadeout/
>  http://site.com/listen/$trackID/wav/
> 
> Пример
> 
>  Когда пользователь вводит в адресной строке URL
> http://site.com/listen/100/mp3/ то ему отдаётся файл /opt/mp3/100.mp3
> если URL http://site.com/listen/100/mp3/fadeout/ то отдаётся файл
> /opt/fadeout/100.mp3
> если URl http://site.com/listen/100/wav/ то отдаётся файл  /opt/wav/100.wav
> 
> Пока ничего в голову не приходит, как можно реализовать.
> 

А задача то простейшая, если читать документацию.

 http://nginx.org/ru/docs/http/ngx_http_core_module.html#location
 http://nginx.org/ru/docs/http/ngx_http_core_module.html#alias
 man pcresyntax
 man pcrepattern
 и т. д.

    location /listen/ {
        location ~^/listen/(?P<trID>[^/]+)/(?P<trExt>mp3|wav)$ {
            alias /opt/$trExt/$trID.$trExt;
        }
        location ~^/listen/(?P<trID>[^/]+)/mp3/fadeout/$ {
            alias /opt/fadeout/$trID.mp3;
        }
    }

--
Валентин Бартенев


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