ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: POST data processing with perl


  • To: nginx-ru <nginx-ru@xxxxxxxxx>
  • Subject: Re: POST data processing with perl
  • From: Daniel Podolsky <onokonem@xxxxxxxxx>
  • Date: Mon, 1 Feb 2010 15:44:00 +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=exUhWdjY0HdEMt5dTgQURWrADQ7cObJj3qOKIbiF8sw=; b=Aunuuj3OZYS//b+J0YftuVvOsoDsrIJRBSFuR97+9bz8ea4UkFJX1E30CBv+h+2X6f txXO0fnuJ5L3Tj47qdVCukK2grpNhWUMWj7cT3qF5+1s6x+cxROy0Bg1R0ngnS9BPxmy o8557YK0wtFiF70P+AzF/HsjxJ6tcNLnOSBHM=
  • 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=KE8WZZp59GYnMmTgOyknAvf6EWfaEipwivqE+sUicqQpJ7wYnbOQ+wyZYCHLSSPY5X sOL4W5DQoqp3VkfmAmV/7WKJBzxRDH+7aH0bUI6mMfiCMef217SsTsnbqGxwflHvPDE3 gtGup2shXZ1lynlsernlYHf6MtMPbW9u9arPE=
  • In-reply-to: <d4574cb31001311812o1ec3e58axe812fed45afe9652@xxxxxxxxxxxxxx>
  • References: <d4574cb31001311812o1ec3e58axe812fed45afe9652@xxxxxxxxxxxxxx>

Что-то я совсем не понимаю, как это работает.

Вот пришел запрос. nginx прочел заголовки и выбрал location для
обработки запроса. Позвал все упомянутые в этом location perl_set,
видимо - в порядке упоминания.

Одна из perl_set установила обработчик на получение тела. Что
происходит дальше? Обработка запроса откладывается до возврата из
обработчика? Или надо самому поспать чутка?

А метод $r->sleep - он как работает? Вот я поставил оброаботчик.
Обработка запроса откладывается, пока я не вернусь из него?

Мне, как я уже писал, надо из обработчика тела, или из обработчика
sleep повлият на то, в каком location произойдет окончательная
обработка запроса и отправка его на бекенд.

Еще - правильно я понимаю, что переменные  $r->valiable, выставленные
из перла - доступны в конфиге? Не сумел придумать теста, который бы
надежно ответил мне на этот вопрос...

2010/2/1 Daniel Podolsky <onokonem@xxxxxxxxx>:
> День добрый!
>
> Пишу перловый модуль, который должен выбирать правильный бекенд по
> имени пользователя, которое приходит в POST.
>
> Имею две функции.
>
> Первая вызывается через perl_set, определяет, что к нам приехал POST,
> и устанавливает вторую функцию как обработчик has_request_body.
>
> Вопрос номер один - что надо вернуть после установки обработчика? ОК?
>
> Обработчик ведет себя странно. То он вызывается, то нет. Определяю это
> по строчкам в логе.
>
> Вопрос номер два - это почему так?
>
> Вопрос номер три - как мне, обработав данные POST, заставить nginx
> проксировать этот запрос без изменений к нужному бекенду? Могу
> переменную установить, могу редирект сделать внутренний. Как
> правильно?
>
> Спасибо.
>
> С уважением,
> Даниил Подольский.
>
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.