Hello! On Thu, Feb 22, 2018 at 03:10:04PM +0200, Igor Savenko wrote:
> Добрый день! Есть ли способ указать, что данный хендлер (в моем случае > ModSecurity handler в access-phase) должен вызываться последним Или после > определенного хендлера? Или, как воркэраунд, в данном модуле проверить > определенное условие, и если оно не выставлено, выдать NGX_DECLINED, чтобы > потом этот модуль в акцесс-фазе был вызван вновь, после того, как остальные > хендлеры уже отработали? Порядок вызова модулей в фазе определяется при сборке - сначала вызываются обработчики тех модулей, которые идут в списке модулей последними (и соответственно добавили свой обработчик в фазу последними). Соответственно в access-фазе сторонние модули в общем случае будут вызываться раньше встроенных, а взаимный порядок сторонних модулей определяется порядком опций --add-module. Чуть больше контроля есть при динамической загрузке - с помощью переменной ngx_module_order можно задать произвольную позицию, куда следует загружать модуль. Но вообще, если порядок вдруг важен - стоит подумать о том, правильно ли выбрана фаза. Если хочется позвать обработчик последним - то, возможно, вам нужна другая фаза. > Влияет ли на этот фукнционал состояние директивы satisfy ? Директива satisfy определяет, будет ли требоватся разрешение на выполнение от всех модулей access-фазы (all) или хотя бы от одного (any). В случае "satisfy all" все модули фазы вызываются последовательно, если хотя бы один из них вернёт ошибку - пользователю будет возвращена ошибка. В случае "satisfy any" все модули фазы вызываются последовательно, пока хотя бы один из них не разрешит выполнение запроса. После этого обработка запроса переходит к следующей фазе, остальные модули фазы не вызываются. Вышеописанное следует учитывать при создании модулей для access-фазы - в случае "satisfy any" они могут не быть вызваны вовсе (если какой-то другой модуль разрешил выполнение запроса), и сами не должны возвращать NGX_OK, если не хотят явно разрешить доступ клиенту, минуя проверки других модулей. -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru