Konstantin Tokarev Wrote:
-------------------------------------------------------
> 25.08.2015, 17:37, "paperroot" <nginx-forum@nginx.us>:
> > Здравствуйте.
> >
> > Хочу написать патч, который будет отдавать контент предварительно
> > setuid'ившись в системного пользователя указанного в конфиге
> virtual_host'a,
> > для того чтобы обезопасить большое кол-во независимых проектов от
> разных
> > пользователей, работающих на одном мощном сервере.
> >
> > Сделал правку в файле src/http/modules/ngx_http_static_module.c в
> функции
> > ngx_http_static_handler.
> > Суть правки: делается clone на участок кода:
> >
> > setgit(vh_gid);
> > setuid(vh_uid);
> > ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool);
> >
> > данная правка работает, но имеются проблемы со сторонними модулями,
> например
> > pagespeed.
> >
> > Подскажите пожалуйста, где идеалогически правильнее делать такую
> правку,
> > чтобы она дружила с другими модулями, или хотябы с модулем
> pagespeed.
>
> Мне кажется, что единственный идеологически верный путь - запускать по
> отдельной
> копии nginx для каждого виртуального хоста под соответствующим
> пользователем, и
> проксировать на них запросы с главного Nginx
>
> >
> > Спасибо.
> >
> > Posted at Nginx Forum:
> http://forum.nginx.org/read.php?21,261237,261237#msg-261237
> >
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru@nginx.org
> > http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
> --
> Regards,
> Konstantin
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
Да такой вариант тоже рассматривался, но он к сожалению довольно затратен по вычислительным ресурсам и слишком сложный для управления и сопровождения.
Я лишь прошу подсказать "точку входа" для правки, т.к. чтение кода nginx и дебагинг с gdb не дали мне ответа на этот вопрос. Гугление тоже ничего не дало, нету описания архитектуры или схемы обработки сетевого подключения.
Поэтому и решил задать вопрос здесь.