А если вы удалите 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.
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@xxxxxxxxx>написал:
Офигенно, Валерий, спасибо вам.
У нас есть специальный сервис (на тредах), который долбится в базу для
авторизации клиента *и проксирует запрос* на другие внутренние
сервисы. С вашим модулем, похоже, работу проксирования можно
наконец-то поручить nginx.
Только есть маленькая проблема. proxy_pass проксирует запрос, который
пришёл от клиента. А нужно составлять новый запрос. В частности, от
клиента может придти POST, а нужен GET. Урл-то можно изменить в
proxy_pass. А метод?
2009/6/26 Valery Kholodkov
<valery+nginxru@xxxxxxxxxxx<valery%2Bnginxru@xxxxxxxxxxx>
:
Здравствуйте!
Новый модель для преобразования ответа от проксированного сервера или
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@xxxxxxxxxxx