URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 6244
[ Назад ]

Исходное сообщение
"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 , 06-Мрт-09 16:14 
>[оверквотинг удален]
>Вопрос.
>Как (чем) не прибегая к 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 , 06-Мрт-09 16:23 
>[оверквотинг удален]
>>Через свроенный 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__