eval module 1.0.1

Sergey Shepelev temotor at gmail.com
Fri Jun 26 16:04:01 MSD 2009


А если вы удалите Content-Length после создания подзапроса, nginx не
потеряет возможности спроксировать оригинальный запрос?

Мне нужно примерно такое:

location /api {
  eval $access_status {
    proxy_pass http://access-checker/access?client=$ssl_client_s_dn;
  }
  if ($access_status != "ok") {
    return 403;
  }
  proxy_pass http://internal-api;
}

2009/6/26 Valery Kholodkov <valery+nginxru at grid.net.ru>:
> Maxim Dounin пишет:
>>
>> Hello!
>>
>> On Fri, Jun 26, 2009 at 07:30:08AM +0400, Борис Долгов wrote:
>>
>>> proxy_method GET;
>>> proxy_pass_request_body off;
>>>
>>> Да, тоже недокументировано :(
>>
>> И кстати недостаточно, т.к. заголовки уйдут от оригинального запроса, в
>> них будет Content-Length, и бекенд сойдёт с ума.
>
> Идея хорошая. Content-Length после создания подзапроса надо будет удалять.
>
> В остальном, по-умолчанию должен наблюдаться эффект этих двух директив,
> поскольку в подзапросе метод заменяется на GET.
>
>>
>> Maxim Dounin
>>
>>> 26 июня 2009 г. 3:29 пользователь Sergey Shepelev
>>> <temotor at gmail.com>написал:
>>>
>>>> Офигенно, Валерий, спасибо вам.
>>>>
>>>> У нас есть специальный сервис (на тредах), который долбится в базу для
>>>> авторизации клиента *и проксирует запрос* на другие внутренние
>>>> сервисы. С вашим модулем, похоже, работу проксирования можно
>>>> наконец-то поручить nginx.
>>>>
>>>> Только есть маленькая проблема. proxy_pass проксирует запрос, который
>>>> пришёл от клиента. А нужно составлять новый запрос. В частности, от
>>>> клиента может придти POST, а нужен GET. Урл-то можно изменить в
>>>> proxy_pass. А метод?
>>>>
>>>> 2009/6/26 Valery Kholodkov
>>>> <valery+nginxru at grid.net.ru<valery%2Bnginxru at grid.net.ru>
>>>>>
>>>>> :
>>>>>
>>>>> Здравствуйте!
>>>>>
>>>>> Новый модель для преобразования ответа от проксированного сервера или
>>>>> memcached в значение одной или нескольких переменных.
>>>>>
>>>>> Возможное применение:
>>>>>  * хранение сессий в memcached
>>>>>  * нахождение узла или кластера, отвечающего за ресурс
>>>>>  * много других
>>>>>
>>>>> Подробности на этой странице:
>>>>>
>>>>> http://www.grid.net.ru/nginx/eval.ru.html
>>>>>
>>>>> Пишите если возникнут проблемы!
>>>>>
>>>>> Модуль разработан по заказу компании GG Network S.A. (gadu-gadu.pl).
>>>>>
>>>>> --
>>>>> Best regards,
>>>>> Valery Kholodkov
>>>>>
>>>>>
>>>
>>>
>>> --
>>> С уважением, Борис Долгов.
>>> icq 77556665
>>> e-mail boris at dolgov.name
>>
>
>
> --
> Best regards,
> Valery Kholodkov
>
>


More information about the nginx-ru mailing list