eval module 1.0.1
Nikolay Sivko
n.sivko at gmail.com
Fri Jun 26 16:42:52 MSD 2009
Sergey Shepelev пишет:
> А если вы удалите 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;
> }
>
>
Мне кажется для такой задачи лучше использовать X-Accel-Redirect.
> 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