Вызов собственного модуля nginx после auth_request

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

1 ответ

Есть два способа заказать модули в nginx.

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

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.

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

Другие вопросы по тегам