CGI::Fast && $ENV{HTTP_*}

Peter Vereshagin petr999 at mail.ru
Wed Jul 30 16:12:28 MSD 2008


Hello,

nginx-0.5.35.

Пользую FCGI::ProcManager. Обнаружил, что CGI.pm работает неправильно, привязал CGI::Fast.
Переменные из GET берёт хорошо, а из POST --- нет.
Порылся в исходниках FCGI, и понял, что POST обрабатывается в CGI.pm.
Собственно проблема с nginx в том, что я ему пишу в конфиге
===
        fastcgi_param  CONTENT_TYPE     $content_type;
        fastcgi_param  CONTENT_LENGTH   $content_length;
===
а переменные в FCGI::ProcManager попадают в %ENV:
===
        HTTP_CONTENT_TYPE
        HTTP_CONTENT_LENGTH
===

остальные прописанные в конфиге --- идут как есть. И действительно, вот я вставляю в мой FCGI::Spawn:
===
map { $ENV{ $_ } = $ENV{ "HTTP_$_" } } qw/CONTENT_LENGTH CONTENT_TYPE/
      if $ENV{ 'REQUEST_METHOD' } eq 'POST';
===

перед "new CGI::Fast" --- и переменные им берутся как надо.

Вопрос в чём: я всё оставляю как сейчас, или это бага nginx? а то мы спецификаций да сишных исходников не читатели, только почитатели-причитатели :)

73! Peter
-- 
http://vereshagin.org





More information about the nginx-ru mailing list