Re: Авторизация соединения

Maxim Dounin mdounin на mdounin.ru
Пн Авг 7 12:53:22 UTC 2017


Hello!

On Tue, Aug 01, 2017 at 09:30:57AM -0400, Vladimir Koshelev wrote:

> Я пробую написать модуль для авторизации клиента с помощью подзапроса,
> включающего данные из клиентского сертификата. Результат подзапроса содержит
> токен, на основе которого и принимается решение. Выполнять подзапрос для
> каждого запроса накладно. поэтому я хотел бы выполнять его только для
> первого запроса или сразу после TLS handshake и кэшировать для данного
> соединения. Возможно ли это?

Закешировать что-то в рамках конкретного соединения можно с 
помощью cleanup-обработчиков пула соединения.  Пример можно 
посмотреть в модуле ngx_http_realip_module, там подобный приём 
применяется для сохранения контекста модуля даже в случае 
внутрениих перенаправлений запроса.

Но вообще я бы рекомендовал не изобретать велосипед, а взять auth_request, 
http://nginx.org/en/docs/http/ngx_http_auth_request_module.html. 
И использовать обычное кеширование, если обращение к бекенду 
накладно.

-- 
Maxim Dounin
http://nginx.org/


Подробная информация о списке рассылки nginx-ru