On Tuesday 25 April 2006 12:01, Igor Sysoev wrote:
> On Tue, 25 Apr 2006, Sergey Serov wrote:
> > On Tuesday 25 April 2006 13:03, daz wrote:
> >> Здравствуйте!
> >>
> >> Появилась такая задача - очень часто выдавать случайную картинку в
> >> запросе из имеющихся в каталоге. Допустим /i/[1-100].jpg
> >>
> >> Можно ли не дергая php средствами nginx отдавать?
> >>
> >> типа
> >> ...
> >> set $rand=rand(1,100)
> >> ...
> >> rewrite ^/i/rand.jpg$ /i/$rand.jpg last;
> >> ...
> >>
> >> я понимаю, что rand(1,100) нет, может по другому как-нибудь?
> >
> > Можно, см. http://sysoev.ru/nginx/docs/http/ngx_http_perl_module.html
>
> Да, что-то вроде
>
> perl_set $rand "sub { return int(rand 100) + 1 }";
>
Кстати, а можно узнать, почему выбор встроенного языка был остановлен именно
на перле? С одной стороны я вижу у Вас в коде сравнивание длины строки до
strncmp, а с другой стороны - перл. Этот пожиратель памяти.
Пока боролся с lighttpd обнаружил в нем полноценный встроенный Lua, хоть и
назывался он там mod_cml (cache makeup language), но был совершенно
полноценным встроенным языком. Синтаксис, конечно непривычный немного, но его
работа совершенно не сказывалась на результатах моих бенчмарков.
Статика и результат работы Lua выдавали одинаковое - порядка 5к запросов в сек
на относительно слабой машине.