Re[4]: модуль eval+fastcgi_pass

Serge Bondari bondari at 1stomni.com
Fri Aug 7 17:03:59 MSD 2009


Hello Valery,


>> Да действительно не заработало. Я так понимаю это реализовать будет
>> весьма проблематично по принципиальным соображениям.

VK> Зависит от того, на чьей стороне реализовывать. Если на моей стороне, то проблематично, поскольку придется реализовывать фильтр, разбирающий вывод любого модуля, при необходимости читая файлы.
VK> Думаю, что на данный момент это слишком сложно для такого простого модуля. Кроме того, я не проверял и не уверен, что это вообще возможно.
VK> Если на стороне Игоря, то незнаю насколько это проблематично.

Возникла еще проблема с логикой внутреннего редиректа: внутри блока eval перменная $uri перекрывается
значением /eval_135604988 и у меня нет возможности при перезапуске
вычисления после "rewrite .. last;" протащить внутрь евал блока
эффективное значение $url. При использовании $request_uri естественно
вся это чудо-конструкция зацикливается.


eval $redirecturi {
     proxy_pass_request_body off;
     proxy_pass_request_headers
     proxy_method GET;
     proxy_set_header "Effective-Request-Uri" $uri;
     proxy_set_header "Host" $http_host;
     proxy_pass http://$server_addr:$server_port/nginx.php ;
}

if ($redirecturi ~ "^300:(.+)$") {
     set $uri_tmp $1;
     rewrite (^.*$) $uri_tmp last;
}


     в мануале ясно сказано что такие фокусы типа
     
      location / {
                set $preserveUri $uri;

                eval $var {
                     # $preserveUri is empty
                }
            }


     не пройдут. можно ли как-то это обойти?

-- 
Best regards,
 Serge






More information about the nginx-ru mailing list