Nginx, Perl, GET, Golub Mikhail, 06-Мрт-09, 15:48 [смотреть все]Все привет.Есть задача - раздавать много статики. И среди статики есть одна страничка, которая получает методом GET запрос и должна выдать результат. Что-то типа index.pl?test=1?test2=2 И результат не замысловатый: test - 1 test2 - 2 Для статики - nginx. Но не хочу к нему приделывать fastcgi потом perl или php. Вопрос. Как (чем) не прибегая к cgi, отбработать параметры GET и выдать страничку? Может через SSI - не нашел, как. Через свроенный Perl в nginx - ен получается достать и разобрать параметры запроса. P.S. В качетсве параметра в get может быть url, поэтому split по знаку равно не совсем подходит ... Кто может подсказать варианты решения?
|
- Nginx, Perl, GET, Pahanivo, 16:14 , 06-Мрт-09 (1)
>[оверквотинг удален] >Вопрос. >Как (чем) не прибегая к cgi, отбработать параметры GET и выдать страничку? > >Может через SSI - не нашел, как. >Через свроенный Perl в nginx - ен получается достать и разобрать параметры >запроса. >P.S. В качетсве параметра в get может быть url, поэтому split по >знаку равно не совсем подходит ... > >Кто может подсказать варианты решения? Может стоит rewrite модом превратить динамик ссылку в статик? ) index.pl?test=1?test2=2 -> /1/2/index.pl как вариант
- Nginx, Perl, GET, Golub Mikhail, 16:23 , 06-Мрт-09 (2)
>[оверквотинг удален] >>Через свроенный Perl в nginx - ен получается достать и разобрать параметры >>запроса. >>P.S. В качетсве параметра в get может быть url, поэтому split по >>знаку равно не совсем подходит ... >> >>Кто может подсказать варианты решения? > >Может стоит rewrite модом превратить динамик ссылку в статик? ) > >index.pl?test=1?test2=2 -> /1/2/index.pl как вариантВариант, спасибо. Чего-то не додумался ... :( Но только вот в чем проблема. В параметрах запроса передается так же url. Т.е. index.pl?url=http://opennet.ru/?quote=not_empty&az=post?qwerty=gfh Пока получилось так (модуль perl для nginx) package mytest; use nginx; sub handler { my $r = shift; $r->send_http_header("text/html"); return OK if $r->header_only; @pairs = split(/&/, $r->args); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $res{$name} = $value; $r->print("NAME $name VALUE $value "); } return OK; } 1; __END__
|