ПРОЕКТЫ 


  АРХИВ 


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: ngx_http_auth_request_module




On Apr 12, 2013, at 10:29 AM, Maxim Dounin <mdounin@xxxxxxxxxx> wrote:

Hello!

On Thu, Apr 11, 2013 at 05:15:15PM +0100, Anatoly Mikhailov wrote:


On Apr 10, 2013, at 12:43 AM, Maxim Dounin <mdounin@xxxxxxxxxx> wrote:

Hello!

On Tue, Apr 09, 2013 at 08:30:17PM +0100, Anatoly Mikhailov wrote:


Так - должно работать, смотрите внимательно, что у вас в коде
авторизатора на бекенде происходит.  Видимо, он пытается лезть в
тело, и вполне логично, что тела не находит - его ещё не читали.

на бэкэнде у нас примитивный Rack, который к сожалению не пускает
запрос с пустым BODY, придется ограничиться Basic HTTP Auth для
запроса /upload...

Как вам будет угодно.  Но вообще - сделать body непустым, или
убрать из запроса то, что ваш бекенд воспринимает в штыки - это ни
разу не проблема:

http://nginx.org/r/proxy_set_header
http://nginx.org/r/proxy_set_body
http://nginx.org/r/proxy_method

Собственно, есть все механизмы для того, чтобы полностью
сформировать запрос на бекенд.


так (proxy_set_body off) заработало, спасибо

  location = /authentication/check {
    proxy_set_header           Content-Length "";
    proxy_pass_request_body    off;
    proxy_set_body             off;
    proxy_buffering            off;
    proxy_pass                 http://unicorn_api/authentication/check;
  }

В итоге "client_body_in_file_only on" и плагин "http_auth_request" в тандеме превращаются
в отличное решение для аплоада больших файлов без необходимости пропускать их
файл через сокет (лишние операции копирования). Плюс ко всему - предварительная 
бэкэнд-аутентификация, которая не дает начать аплоад, если она не пройдена.
Насколько я понимаю, при обычном аплоаде бэкэнд-аутентификация запускается
только после того, как файл уже загружен и пропущен через сокет?

Вопрос только один - почему эти просто замечательные вещи слабо документированы? :) 
Вы даже не представляете, насколько это востребованная типовая задача, которую 
почти всегда решают с помощью костылей, но nginx уже имеет все, что нужно.


--
Maxim Dounin
http://nginx.org/en/donation.html

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.