Re: Хочу написать патч
On Tuesday, 25.08.2015 10:37:20 paperroot wrote: > Здравствуйте. > > Хочу написать патч, который будет отдавать контент предварительно > setuid'ившись в системного пользователя указанного в конфиге virtual_host'a, > для того чтобы обезопасить большое кол-во независимых проектов от разных > пользователей, работающих на одном мощном сервере. > ngx_http_static_module Если, например, файлы лежат по путям вида /srv/web/project42/static, и права на /srv/web/project42 — 0700 (и нельзя просто сделать chgrp www-data), то можно bind-маунтами вынести все static в отдельное место, куда юзер www-data уже будет иметь доступ. Или еще можно задействовать bindfs. -- HTH Roman. signature.asc Description: This is a digitally signed message part. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Re: Хочу написать патч
Т.е. все решается без костылей на уровне конфигов и правильной расстановки прав на файлы. так и есть для того чтобы обезопасить большое кол-во независимых проектов от разных пользователей, работающих на одном мощном сервере. не вижу проблем с безопасностью када нджинкс работает под www и проксирует на разные бекенды с разными юид/гид-ами. Товаришь выше правильно описал - достаточно пихнуть нджинкс в общую группу с хостами и расставить права. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Re: Хочу написать патч
достаточно пихнуть нджинкс в общую группу с хостами и расставить права. Я бы внес уточнения в формулировку. Не в какую-то ОДНУ общую группу, а в Х групп, где Х-количество системных аккаунтов из под которых работают vhost-ы. Тогда достаточно на корневую директорию vhost поставить 0740 и быть уверенным, что файлы внутри может читать только владелец и nginx при этом дальше по дереву директорий (при дефолном umask в 022) владелец без проблем меняет файлы, а nginx по прежнему имеет к ним доступ (касается ситуации, когда файлы закачали, к примеру, по ftp). ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Re: Re: Хочу написать патч
Не в какую-то ОДНУ общую группу, а в Х групп, где Х-количество системных аккаунтов из под которых работают vhost-ы. /var/www/vhost1 - 740 - vhost1:www /var/www/vhost2 - 740 - vhost2:www /var/www/vhost3 - 740 - vhost3:www или так /var/www/vhost1 - 740 - vhost1:vhost1 /var/www/vhost2 - 740 - vhost2:vhost2 /var/www/vhost3 - 740 - vhost3:vhost3 и добавить пользователю нджинкса все юзер группы хостов. username: nginxuser group: (nginxuser,vhost1,vhost2,vhost3) пс: для первого варианта лучше ещё добавить для каждого vhost open_base_dir ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Хочу написать патч
В рассылке mpm-itk выкладывали сравнения производительности, падение было 5-10%, так что 2-3 раза то вы загнули 2015-08-26 18:25 GMT+03:00 Oleksandr V. Typlyns'kyi wangs...@gmail.com: Today Aug 26, 2015 at 16:43 navern wrote: В апаче есть mod_itk и там такой проблемы нет. Но там fork работает, поэтому что-то подобное проще сделать. И производительность с ним в 2-3 раза ниже, а число процессов вдвое выше. Ибо висят они изначально от root, а под каждый запрос делают fork. -- WNGS-RIPE ___ nginx-ru mailing list 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
Re: Хочу написать патч
Today Aug 26, 2015 at 18:45 Alex Domoradov wrote: В рассылке mpm-itk выкладывали сравнения производительности, падение было 5-10%, так что 2-3 раза то вы загнули Это на обслуживании только динамики, где львиную долю занимает интерпретатор языка или сайта вцелом с кучей fork-ов на кучу картиночек? Я пробовал использовать его с apache 2.2 лет 7 назад и проседание производительности было существенным. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Хочу написать патч
pagespeed - это странный модуль. если у вас ненагруженный сайт, мало трафика, вы спокойно проживете без него, если нагруженный, поверьте, манипуляции с контентом на лету - это не то, что вам захочется делать на нагруженном сайте. есть куча инструментов, которые оптимизируют статику, всякие бандлеры, jpegoptim, spriteme и т.д. 25 августа 2015 г., 19:37 пользователь paperroot nginx-fo...@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. Спасибо. 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 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Хочу написать патч
Konstantin Tokarev Wrote: --- 25.08.2015, 17:37, paperroot nginx-fo...@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 не дали мне ответа на этот вопрос. Гугление тоже ничего не дало, нету описания архитектуры или схемы обработки сетевого подключения. Поэтому и решил задать вопрос здесь. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261237,261255#msg-261255 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Хочу написать патч
26 авг. 2015 г. 12:01 пользователь paperroot nginx-fo...@nginx.us написал: Konstantin Tokarev Wrote: --- 25.08.2015, 17:37, paperroot nginx-fo...@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 для пользователя несущественны. Не мучайтесь и не заводите себя в тупик. Сделайте каждому юзеру по 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 http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Хочу написать патч
В вашем случае будет несколько процессов nginx под разными пользователями, но как.. как вы будете коннекту приказывать подключиться к тому или иному процессу, если на этапе коннекта вы не знаете к какому сайту будет запрос? 26 августа 2015 г., 12:00 пользователь paperroot nginx-fo...@nginx.us написал: Konstantin Tokarev Wrote: --- 25.08.2015, 17:37, paperroot nginx-fo...@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 не дали мне ответа на этот вопрос. Гугление тоже ничего не дало, нету описания архитектуры или схемы обработки сетевого подключения. Поэтому и решил задать вопрос здесь. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261237,261255#msg-261255 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Kpoxa ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Хочу написать патч
On 26.08.2015 14:25, Daniel Podolsky wrote: но если на одном сервере тысячи клиентов, то такое решение уже совсем не подходит. да почему же? dedup страниц памяти на основании inode исполнимого файла/библиотеки не делся никуда же... ___ nginx-ru mailing list 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
Re: Хочу написать патч
Такое - это более тысячи nginx бинарников, каждый запущенный из-под своего пользователя. нет, в проде я такого не видел, у меня другая специализация. но и препятствий к этому не вижу никаких переключения контекста современный проц уж как-нибудь отработает. правда, следует заметить, что запустить apache+suexec окажется, скорее всего, выгоднее ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Хочу написать патч
Где-то такое видели уже в продакшене? Не тестировал, но уверен оверхед и накладные расходы(не говоря уж о количестве процессов и управлении всем этим) будут достаточно большие. Если где-то такое работает, то хотелось бы про это почитать. такое - это какое? дедап? он приделан к ядру линуксовому уже давно. почитать - на вскидку только вот это: http://unix.stackexchange.com/questions/116327/loading-of-shared-libraries-and-ram-usage ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Хочу написать патч
On 26.08.2015 15:05, Daniel Podolsky wrote: Где-то такое видели уже в продакшене? Не тестировал, но уверен оверхед и накладные расходы(не говоря уж о количестве процессов и управлении всем этим) будут достаточно большие. Если где-то такое работает, то хотелось бы про это почитать. такое - это какое? дедап? он приделан к ядру линуксовому уже давно. почитать - на вскидку только вот это: http://unix.stackexchange.com/questions/116327/loading-of-shared-libraries-and-ram-usage ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru Я понимаю, что такое dedup:) Такое - это более тысячи nginx бинарников, каждый запущенный из-под своего пользователя. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Хочу написать патч
но если на одном сервере тысячи клиентов, то такое решение уже совсем не подходит. да почему же? dedup страниц памяти на основании inode исполнимого файла/библиотеки не делся никуда же... ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Хочу написать патч
Думаю, что в поддержке такая система потребует много времени. Я вот, например, использую примерно такую конструкцию VirtualHost *:80 ServerName staging.example.net ServerAlias *.example.net UseCanonicalName Off VirtualDocumentRoot /vhosts/example.net/%1 DirectoryIndex index.php index.html AssignUserFromPath ^/vhosts/example.net/([^/]+) stg_$1 stg_$1 Directory /vhosts/example.net Options -Indexes AllowOverride All Order allow,deny Allow from all /Directory /VirtualHost Все что нужно, это создать нового пользователя в системе. # useradd -s /sbin/nologin -d /vhosts/example.net/project1 stg_project1 единственный минус - нет возможности одновременно запускать несколько версий php, а часто бывает нужно. 2015-08-26 17:02 GMT+03:00 Anton Yuzhaninov cit...@citrin.ru: On 08/25/15 17:37, paperroot wrote: Хочу написать патч, который будет отдавать контент предварительно setuid'ившись в системного пользователя указанного в конфиге virtual_host'a, для того чтобы обезопасить большое кол-во независимых проектов от разных пользователей, работающих на одном мощном сервере. Лучше посмотреть в сторону POSIX ACL (setfacl) чтобы пользователю nginx можно было выдать права на чтение всех пользовательских файлов, при этом чтобы сами пользователи не могли читать файлы друг-друга. ___ nginx-ru mailing list 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
Re: Хочу написать патч
Не выглядит это как производительное решение. никто же не мешает просто взять и померять. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Хочу написать патч
On 08/25/15 17:37, paperroot wrote: Хочу написать патч, который будет отдавать контент предварительно setuid'ившись в системного пользователя указанного в конфиге virtual_host'a, для того чтобы обезопасить большое кол-во независимых проектов от разных пользователей, работающих на одном мощном сервере. Лучше посмотреть в сторону POSIX ACL (setfacl) чтобы пользователю nginx можно было выдать права на чтение всех пользовательских файлов, при этом чтобы сами пользователи не могли читать файлы друг-друга. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Хочу написать патч
для того чтобы обезопасить большое кол-во независимых проектов от разных пользователей, работающих на одном мощном сервере. nginx+php-fpm, каждый требующий изоляции проект заводится в своем pool-е (я для fpm при этом еще и chroot делаю). На корневую папку проекта ставим права 740, при этом nginx должен входить в группу которая имеет доступ к файлам проекта. Т.е. все решается без костылей на уровне конфигов и правильной расстановки прав на файлы. 25 августа 2015 г., 18:37 пользователь paperroot nginx-fo...@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. Спасибо. 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 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Хочу написать патч
On 26.08.2015 15:38, Daniel Podolsky wrote: Такое - это более тысячи nginx бинарников, каждый запущенный из-под своего пользователя. нет, в проде я такого не видел, у меня другая специализация. но и препятствий к этому не вижу никаких переключения контекста современный проц уж как-нибудь отработает. правда, следует заметить, что запустить apache+suexec окажется, скорее всего, выгоднее ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru Думаю есть разница между 40 воркерами для одного nginx и 4000 воркерами для двух тысяч клиентов на сервере(предположим в каждом кастомном экземпляре nginx будет по два воркера). Не выглядит это как производительное решение. В апаче есть mod_itk и там такой проблемы нет. Но там fork работает, поэтому что-то подобное проще сделать. Возможно есть кто-то еще, кто делал нечто подобное? ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Хочу написать патч
В апаче есть mod_itk и там такой проблемы нет. Но там fork работает, поэтому что-то подобное проще сделать. классная штука, только вот при использовании mod_fcgid, к сожалению, нельзя запустить сайт от пользователя отличного от apache. И это его самый большой минус пожалуй 2015-08-26 16:50 GMT+03:00 Алексей Сундуков public-m...@alekciy.ru: для того чтобы обезопасить большое кол-во независимых проектов от разных пользователей, работающих на одном мощном сервере. nginx+php-fpm, каждый требующий изоляции проект заводится в своем pool-е (я для fpm при этом еще и chroot делаю). На корневую папку проекта ставим права 740, при этом nginx должен входить в группу которая имеет доступ к файлам проекта. Т.е. все решается без костылей на уровне конфигов и правильной расстановки прав на файлы. 25 августа 2015 г., 18:37 пользователь paperroot nginx-fo...@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. Спасибо. 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 ___ nginx-ru mailing list 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
Re: Хочу написать патч
Кстати, а опишите задачу полностью, наверняка решается без подобного кодоблудия. 25 августа 2015 г., 17:37 пользователь paperroot nginx-fo...@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. Спасибо. 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 -- Kpoxa ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Хочу написать патч
Today Aug 26, 2015 at 16:43 navern wrote: В апаче есть mod_itk и там такой проблемы нет. Но там fork работает, поэтому что-то подобное проще сделать. И производительность с ним в 2-3 раза ниже, а число процессов вдвое выше. Ибо висят они изначально от root, а под каждый запрос делают fork. -- WNGS-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Хочу написать патч
25.08.2015, 17:37, paperroot nginx-fo...@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