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