В настоящее время такой конфиг работает с Nginx 1.5.13. Все данные, необходимые бэкэнду, чтобы принять proxy_pass, передаются в заголовках, проблем никаких не возникает.
location /upload { limit_except POST { deny all; } keepalive_timeout 300s; client_body_temp_path /tmp/; client_body_in_file_only on; client_body_buffer_size 128K; client_max_body_size 100M; proxy_pass_request_headers on; proxy_set_header X-File $request_body_file; proxy_set_body off; proxy_redirect off; proxy_pass https://api.domain.com/v1/upload; error_log /var/log/nginx/nginx.upload.error.log; } Будет ли какие изменения поведения аплоада при апргейде до 1.8+? Анатолий On 22 May 2015, at 14:43, Maxim Dounin <mdou...@mdounin.ru> wrote: > 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
_______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru