random_index

Валентин Бартенев ne на vbart.ru
Чт Ноя 3 18:13:26 UTC 2011


On Thursday 03 November 2011 22:35:53 ola wrote:
[...]
> > Должно сработать как-то так:
> >     location ~ ^/banner(?<number>\d+)/(?<file>.*) {
> >     
> >         alias /common/example.org/adv/$number/$file;
> >         random_index on;
> >     
> >     }
> 
> Это  немного  не  то. Если использовать ваш вариант, то получается что
> рандомные  имена  файлов  (?<file>.*)  надо  генерить  на  бекенде.  А
> хотелось бы использовать nginx для этой задачи.

А вы пробовали предложенную конфигурацию?

1) Как я себе представляю, она должна работать так:

Запрос /banner2/ попадет в указанный локейшн,
при этом $number == 2 , а $file == ""

alias примет вид: /common/example.org/adv/2/

Поскольку uri заканчивается на /, то сработает random_index и возьмет один 
случайный файл (назовем его random.file) из root + alias и сделает внутренний 
редирект на /banner2/random.file

2) Это запрос /banner2/random.file опять попадет в указанный локейшн,
при этом: $number == 2 , а $file == random.file

alias примет вид: /common/example.org/adv/2/random.file

Поскольку uri теперь не заканчивается на / , то random_index
не сработает, а будет просто отдан файл root + alias, т. е.
/common/example.org/adv/2/random.file

Не этого ли вы хотите?

--
Валентин Бартенев
http://vbart.ru/




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