Welcome! Log In Create A New Profile

Advanced

Re: Хочу написать патч

navern
August 26, 2015 07:12AM
On 26.08.2015 13:29, Vasiliy Tolstov wrote:
>
>
> 26 авг. 2015 г. 12:01 пользователь "paperroot" <nginx-forum@nginx.us
> <mailto:nginx-forum@nginx.us>> написал:
> >
> > Konstantin Tokarev Wrote:
> > -------------------------------------------------------
> > > 25.08.2015, 17:37, "paperroot" <nginx-forum@nginx.us
> <mailto: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 <mailto:nginx-ru@nginx.org>
> > > > http://mailman.nginx.org/mailman/listinfo/nginx-ru
> > >
> > > --
> > > Regards,
> > > Konstantin
> > >
> > > _______________________________________________
> > > nginx-ru mailing list
> > > nginx-ru@nginx.org <mailto:nginx-ru@nginx.org>
> > > http://mailman.nginx.org/mailman/listinfo/nginx-ru
> >
> > Да такой вариант тоже рассматривался, но он к сожалению довольно
> затратен по
> > вычислительным ресурсам и слишком сложный для управления и
> сопровождения.
> >
>
> Я видел такие решения у некоторых хостингов. Экономия выходит на
> спичках, а проблем становиться больше. Накладные расходы на каждый
> экземпляр nginx для пользователя несущественны. Не мучайтесь и не
> заводите себя в тупик. Сделайте каждому юзеру по nginx и все.
>
> > Я лишь прошу подсказать "точку входа" для правки, т.к. чтение кода
> nginx и
> > дебагинг с gdb не дали мне ответа на этот вопрос. Гугление тоже
> ничего не
> > дало, нету описания архитектуры или схемы обработки сетевого
> подключения.
> >
> > Поэтому и решил задать вопрос здесь.
> >
> > Posted at Nginx Forum:
> http://forum.nginx.org/read.php?21,261237,261255#msg-261255
> >
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru@nginx.org <mailto:nginx-ru@nginx.org>
> > http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
Во-первых по поводу архитектуры Nginx, рекомендую взглянуть на книгу
архитектура приложений с открытым исходным кодом:
http://rus-linux.net/MyLDP/BOOKS/Architecture-Open-Source-Applications/Vol-2/14-nginx-1.html

Там отдельная глава, посвященная nginx и принципам его работы.

Во-вторых при реализации подобного решения нужно учитывать принципы
работы nginx и его модель обработки соединений(epoll). Если в апаче есть
мод itk и там для каждого соединения делается fork, внутри которого
можно делать смену uid и это ограничивает для всяких PHP скриптов
возможность записи в другие директории, то в nginx висит фиксированное
число workers, которые обрабатывают все connect'ы. Даже если сделать
setuid перед обработкой статики, а потом выходить, то никакого
увеличения безопасности не будет. Уже не говорю про накладные расходы.

По поводу несколько экземпляров nginx. Это тоже не вариант решения
вопроса, так как если у вас два-три клиента, то это может и будет
экономия на спичках, но если на одном сервере тысячи клиентов, то такое
решение уже совсем не подходит.
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Хочу написать патч

paperroot August 25, 2015 10:37AM

Re: Хочу написать патч

Konstantin Tokarev August 25, 2015 05:04PM

Re: Хочу написать патч

paperroot August 26, 2015 05:00AM

Re: Хочу написать патч

kpoxa August 26, 2015 06:22AM

Re: Хочу написать патч

Vasiliy Tolstov August 26, 2015 06:30AM

Re: Хочу написать патч

navern August 26, 2015 07:12AM

Re: Хочу написать патч

Daniel Podolsky August 26, 2015 07:26AM

Re: Хочу написать патч

navern August 26, 2015 07:58AM

Re: Хочу написать патч

Daniel Podolsky August 26, 2015 08:06AM

Re: Хочу написать патч

navern August 26, 2015 08:16AM

Re: Хочу написать патч

Daniel Podolsky August 26, 2015 08:40AM

Re: Хочу написать патч

navern August 26, 2015 09:46AM

Re: Хочу написать патч

Daniel Podolsky August 26, 2015 09:48AM

Re: Хочу написать патч

Oleksandr V. Typlyns'kyi August 26, 2015 11:26AM

Re: Хочу написать патч

ALex_hha August 26, 2015 11:46AM

Re: Хочу написать патч

Oleksandr V. Typlyns'kyi August 26, 2015 12:50PM

Re: Re: Хочу написать патч

Amanda Sproule August 28, 2015 04:14AM

Re: Re: Хочу написать патч

Алексей Сундуков August 28, 2015 07:56AM

Re: Re: Re: Хочу написать патч

Amanda Sproule August 28, 2015 09:08AM

Re: Хочу написать патч

Илья Шипицин August 26, 2015 03:56AM

Re: Хочу написать патч

kpoxa August 26, 2015 09:42AM

Re: Хочу написать патч

Алексей Сундуков August 26, 2015 09:52AM

Re: Хочу написать патч

ALex_hha August 26, 2015 09:56AM

Re: Хочу написать патч

Anton Yuzhaninov August 26, 2015 10:04AM

Re: Хочу написать патч

ALex_hha August 26, 2015 10:32AM

Re: Хочу написать патч

Roman Odaisky September 17, 2015 04:30PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 110
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready