ngx_http_auth_request_module

Anatoly Mikhailov anatoly at sonru.com
Fri Apr 12 11:20:05 UTC 2013


On Apr 12, 2013, at 10:29 AM, Maxim Dounin <mdounin at mdounin.ru> 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 at mdounin.ru> 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 at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20130412/90a5f16b/attachment-0001.html>


Подробная информация о списке рассылки nginx-ru