Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Разбор POST-запросов
- To: nginx-ru <nginx-ru@xxxxxxxxx>
- Subject: Re: Разбор POST-запросов
- From: Daniel Podolsky <onokonem@xxxxxxxxx>
- Date: Mon, 8 Feb 2010 19:43:05 +0300
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=EbrUkJSw8LFQJ3jSPWPBzMm+cfYMjD+5IDnzj7wl0Jw=; b=aGZ4AfzE6Z31OcjHvuJJRie96kMMldymvaNZBCLom6D2qSZMp0hZTyyISDKP6x8zlp MT8kRs2WSs3L+jYsDp+RD82NS5KhLc6uYZuCz374yP0pMlIaj+GGhCEQ6yZLrzkC7Xgn X+wCBbRjeMp5w5Y3cP914kfPMsyrMtP/2hVYY=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=ddCB5O356mB9RqwfOoWL8HDX8dtege1a1vb+0Ry4NFP1yWAbCqusTdxCVoZahqIo3c r0zRQmkESWbkogQSkxMO4bKBKY0dWC0X1rgjZBG/BguWE0mklogpiiKUbG6VlO4eKGcQ jNNW8M1qB2xA8byuC5UJ8Uz4U1duOjw9BFJRE=
- In-reply-to: <c3057d0eed223a2d8129ba001ad7cb96.NginxMailingListRussian@xxxxxxxxxxxxxxx>
- References: <c3057d0eed223a2d8129ba001ad7cb96.NginxMailingListRussian@xxxxxxxxxxxxxxx>
> Скажите, пожалуйста, есть ли возможность выделить интересующие аргументы
> POST-запроса (nginx/0.6.38)?
Можно получить запрос встроенным перлом, и в нем выделить все, что захочется.
В конфиге:
perl_modules /pathToYourModule;
perl_require YourModule.pm;
location = /postHere
{
if ($request_method != POST)
{
error_page 345 = @namedLocationToProcessGET;
return 345;
}
perl YourModule::checkPost;
}
В YourModule.pm
package YourModule;
use nginx;
sub checkPost($)
{
my $r = shift;
if (!$r->has_request_body(\&parsePost))
{
$r->log_error(0, "Post without body, not good");
return 400;
};
return OK;
};
sub parseAuth($)
{
my $r = shift;
my $body = $r->request_body || '';
# Ну и тут уже резвимся, как захотим.
};
Да, возможен вариант, когда тело ляжет в файл. Можно этого не
допускать, регулируя размер буфера и максимальный размер тела. А
можно, наоборот, этого потребовать, и использовать
$r->request_body_file.
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|