Hello! On Fri, May 22, 2015 at 04:11:11PM +0300, Sergey Egorov wrote:
> Всем Привет! > > 1.8.0 - проблемы с передачей $request_body_file в upstream. > > Нашел вот это - > http://mailman.nginx.org/pipermail/nginx-ru/2007-December/015531.html > > Пробовал вот так > ``` > proxy_set_header X-FILE "$request_body_file"; > proxy_pass > http://127.0.0.1:8810/v1/upload?file=$request_body_file; > ``` > > Пустая переменная при POST - X-FILE нет в заголовках, и пусто после file= > > Если вот так > ``` > proxy_set_header X-FILE "$request_body_file"; > proxy_pass http://127.0.0.1:8810/v1/upload; > ``` > > То в заголовках есть. Но хочется в запросе. > > Баг или так и задуманно? Переменная $request_body_file имеет какое-либо разумное значение только после того, как прочитано тело. Меж тем, переменные в директиве proxy_pass разыменовываются до этого. Кроме того, в результате обращения к переменной $request_body_file - кешируется пустое значение, и используется в дальнейшем. Т.е., фактически, так и задумано. Точнее, предполагается, что так делать не будут, а кто сделал - тот получил уникальную возможность героически преодолевать трудности. Отдельно отмечу, что использовать переменные в proxy_pass без нужды - не очень хорошая идея сама по себе. В данном случае я бы рекомендовал ограничиться заголовком или proxy_set_body. -- Maxim Dounin http://nginx.org/ _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru