Вызов собственного модуля 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.
Я не слишком уверен, могут ли основные модули быть легко переупорядочены.