Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: webdav в rest на nginx: upload, подз апрос, замена параметров запроса и ответа
- To: nginx-ru@xxxxxxxxx
- Subject: Re: webdav в rest на nginx: upload, подз апрос, замена параметров запроса и ответа
- From: Vasiliy Fedorov <fyodorovvv@xxxxxxxxx>
- Date: Mon, 4 Oct 2010 19:02:27 +0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=l3wE26OpL5ZnAQyyQLj5f2Y45gVPE0Ih1iW6dj10B8o=; b=sXfZR+FRh/BGy+ZZAzOM4UNf5N9OUdO4x9wEzHtCBfbutEoUzriO1dgFJ00Un87rBv VTezrhoLdQRXZkARkAEhXMFz8f/+rRMwMvAdnvOv163mTG0sVi+0Vo4CR3EgdHnKkq+8 XT8xLFmjul4TP3Ch9A7GDiW1MULPgrEu6+oX8=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=pUlUDfQyHOCYRCFjrP6+0uGxr0f3lmYXwuZD4FKiZy9Vwgqf4mfvip1S2y5x/TAoh8 JvJdBxuOZGCAMn8rZdckWU/6ZHY1ICCARxidDcjSufzeyk+jgh4MJ3ox229+h/DXpIoY GLnmhBRx+3ZdNyFS0h8Ja90zoxeLsXu1xQW+s=
- In-reply-to: <20101004111630.GH44164@xxxxxxxxxx>
- References: <AANLkTi=W5BRK1u5SSxrE6hOzdL0=+z+VEdCbVJf2Vs9s@xxxxxxxxxxxxxx> <20101004111630.GH44164@xxxxxxxxxx>
2010/10/4 Maxim Dounin <mdounin@xxxxxxxxxx>:
>
> В зависимости от конкретной задачи - можно либо сделать через
> X-Accel-Redirect,
Для аплоадов это не подойдет, вроде.
> либо взять какой-нибудь из модулей:
> eval (http://grid.net.ru/nginx/eval.en.html), auth request
> (http://mdounin.ru/hg/ngx_http_auth_request_module/).
Спасибо, как раз на последний смотрел, про pass_request_body и
спрашивал ниже. Но нужно в зависимости от ответа менять заголовки и
урл.
>> 3. Если нельзя -- ругнуться пользователю, если можно -- поменять
>> request: method, uri, заголовки* -- и проксировать дальше.
>
> Менять методы и заголовки можно в коробке, про uri даже и не
> говорю.
Да, спасибо, документацию я читал, то есть наличие всяких разных
параметров мне известно. Сложности с их комбинациями :-)
Конкретно в этом моменте ситуация осложняется тем что заголовки надо
выставлять динамически, в зависимости от ответа на подзапрос,
"подписывать запрос к Amazon S3".
>> *: X-Accel-Redirect тут подходит плохо, хотя и используют для похожих
>> вещей: http://kovyrin.net/2010/07/24/nginx-fu-x-accel-redirect-remote/
>
> X-Accel-Redirect подходит, но требует некоторой аккуратности в
> написании конфигов.
То есть можно некоторыми ухищрениями добиться того чтоб контент не
передавался для первого запроса, и передавался при редиректе?
proxy_pass_request_body -- снова ключевое слово?
> В большинстве случаев пропускать ещё не полученный запрос на
> бекенд - излишняя трата ресурсов. Кроме того, при таком подходе
> пропадает возможность перепослать запрос на другой бекенд, если с
> первым что-то случилось и он запрос недочитал.
Если проблема в этом, то можно запрос еще куда-нибудь копировать, но в
общем-то можно сделать параметром конфигурации, наверно.
> Сделать подобный вариант обработки для больших постов безусловно
> имеет смысл, но это a) требует времени и b) нужно далеко не всегда.
>
>> 2. Авторизация через другой сервер:
>> -- можно попробовать запрос направить на статический файлик с SSI
>> инструкциями, первой инструкцией сходить авторизоваться, в зависимости
>> от значения ответа вызывать разные SSI (не авторизован -- ошибка,
>> авторизован -- вызвать url)
>
> Нет, так работать не будет. Статический файл выкинет тело
> запроса.
Понятно, спасибо.
>> P.S.: Директива proxy_pass_request_body есть в документации на
>> английском (http://wiki.nginx.org/HttpProxyModule#proxy_pass_request_body),
>> нет в документации на русском
>> (http://sysoev.ru/nginx/docs/http/ngx_http_proxy_module.html) и нет
>> слов о ее отмене в changes (http://sysoev.ru/nginx/changes.html)
>
> Это недокументированная директива.
В смысле "забытая"? В changes есть слова о ее появлении.
Спасибо :)
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|