Вызов собственного модуля nginx после auth_request - PullRequest
0 голосов
/ 20 марта 2019

У меня есть пользовательский модуль nginx, который устанавливает заголовок для запроса перед передачей запроса на сервер. Я также использую auth_request для аутентификации. Мой раздел местоположения содержит auth_request, а также пользовательскую директиву модуля. Я хочу убедиться, что настраиваемый заголовок устанавливается только после подзапроса auth, а не в подзапросе. В настоящее время я вижу, что пользовательский модуль вызывается первым, а заголовок устанавливается в самом подзапросе.

1 Ответ

0 голосов
/ 27 марта 2019

Существует два способа заказа модулей в nginx.

При добавлении обработчика модуля он добавляется к phase .

ngx_http_handler_pt *h = ngx_array_push(&cmcf->phases[NGX_HTTP_CONTENT_PHASE].handlers);
if(h == NULL)
{
    return NGX_ERROR;
}

*h = ngx_dcs_handler;

.Например, мы видим, что модуль добавляется в NGX_HTTP_CONTENT_PHASE.Я думаю, что auth_request добавляется на другой более ранней фазе?

Единственный другой способ - это перекомпилировать в правильном порядке.Первый модуль, который запускается, является последним в командной строке configure.

configure ... --add-module=C --add-module=B --add-module=A

В этом случае сначала запускается модуль A, затем B и, наконец, C.

I'mне уверен, могут ли основные модули быть легко переупорядочены.

...