Re: Порядок прохождения хендлеров в фазе

Igor Savenko igor.bliss на gmail.com
Чт Фев 22 16:59:55 UTC 2018


Спасибо! :) Понятно

22 февраля 2018 г., 18:52 пользователь Maxim Dounin <mdounin на mdounin.ru>
написал:

> Hello!
>
> On Thu, Feb 22, 2018 at 06:15:35PM +0200, Igor Savenko wrote:
>
> > Большое спасибо, Максим! Тем временем, я обратил внимание на то, каким
> > образом в openresty реализован фукнционал сдвига выполнения модуля в
> самый
> > конец фазы:
> >
> >     if (!lmcf->postponed_to_access_phase_end) {
> >
> >         lmcf->postponed_to_access_phase_end = 1;
> >
> >         cmcf = ngx_http_get_module_main_conf(r, ngx_http_core_module);
> >
> >         ph = cmcf->phase_engine.handlers;
> >         cur_ph = &ph[r->phase_handler];
>
> [...]
>
> > Актуален ли данный подход? Это хак, недокументированная возможность или
> > широкоизвестная в узких кругах функциональность?
>
> Приблизительно всё, что можно найти в openresty - это хаки разной
> степени тяжести.  Процитированный код - характерный представитель.
>
> Во-первых, он лезет во внутренние структуры http core.  Однажды мы
> что-нибудь поменяем внутри - и оно всё сломается с удивительными
> спецэффектами.
>
> Во-вторых, он пытается менять конфигурацию внутри работающего
> рабочего процесса.  Это просто глупо, так как приведёт к тому, что
> соответствующие структуры будут дублироваться в памяти разных
> рабочих процессов.
>
> Не надо делать так.
>
> --
> Maxim Dounin
> http://mdounin.ru/
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20180222/c3c06ed1/attachment.html>


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