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

2015-09-17 Пенетрантность Roman Odaisky
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: Хочу написать патч

2015-08-28 Пенетрантность Amanda Sproule
Т.е. все решается без костылей на уровне конфигов и правильной
расстановки прав на файлы.

так и есть


 для того чтобы обезопасить большое кол-во независимых проектов от разных
 пользователей, работающих на одном мощном сервере.

не вижу проблем с безопасностью када нджинкс работает под www и проксирует
на разные бекенды с разными юид/гид-ами. Товаришь выше правильно описал -
достаточно пихнуть нджинкс в общую группу с хостами и расставить права.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2015-08-28 Пенетрантность Алексей Сундуков
 достаточно пихнуть нджинкс в общую группу с хостами и расставить права.
Я бы внес уточнения в формулировку. Не в какую-то ОДНУ общую группу, а в Х
групп, где Х-количество системных аккаунтов из под которых работают
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: Хочу написать патч

2015-08-28 Пенетрантность Amanda Sproule
Не в какую-то ОДНУ общую группу, а в Х групп, где Х-количество системных
аккаунтов из под которых работают 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: Хочу написать патч

2015-08-26 Пенетрантность Alex Domoradov
В рассылке 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: Хочу написать патч

2015-08-26 Пенетрантность Oleksandr V. Typlyns'kyi
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: Хочу написать патч

2015-08-26 Пенетрантность Илья Шипицин
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: Хочу написать патч

2015-08-26 Пенетрантность paperroot
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: Хочу написать патч

2015-08-26 Пенетрантность Vasiliy Tolstov
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: Хочу написать патч

2015-08-26 Пенетрантность kpoxa
В вашем случае будет несколько процессов 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: Хочу написать патч

2015-08-26 Пенетрантность navern

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: Хочу написать патч

2015-08-26 Пенетрантность Daniel Podolsky
 Такое - это более тысячи nginx бинарников, каждый запущенный из-под своего
 пользователя.
нет, в проде я такого не видел, у меня другая специализация. но и
препятствий к этому не вижу никаких переключения контекста современный
проц уж как-нибудь отработает.

правда, следует заметить, что запустить apache+suexec окажется, скорее
всего, выгоднее
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2015-08-26 Пенетрантность Daniel Podolsky
 Где-то такое видели уже в продакшене? Не тестировал, но уверен оверхед и
 накладные расходы(не говоря уж о количестве процессов и управлении всем
 этим) будут достаточно большие. Если где-то такое работает, то хотелось бы
 про это почитать.
такое - это какое? дедап? он приделан к ядру линуксовому уже давно.

почитать - на вскидку только вот это:
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: Хочу написать патч

2015-08-26 Пенетрантность navern

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: Хочу написать патч

2015-08-26 Пенетрантность Daniel Podolsky
 но если на одном сервере тысячи клиентов, то такое решение уже совсем не 
 подходит.
да почему же? dedup страниц памяти на основании inode исполнимого
файла/библиотеки не делся никуда же...
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2015-08-26 Пенетрантность Alex Domoradov
Думаю, что в поддержке такая система потребует много времени. Я вот,
например, использую примерно такую конструкцию

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: Хочу написать патч

2015-08-26 Пенетрантность Daniel Podolsky
 Не выглядит это как производительное решение.
никто же не мешает просто взять и померять.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2015-08-26 Пенетрантность Anton Yuzhaninov

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: Хочу написать патч

2015-08-26 Пенетрантность Алексей Сундуков
для того чтобы обезопасить большое кол-во независимых проектов от разных
 пользователей, работающих на одном мощном сервере.

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: Хочу написать патч

2015-08-26 Пенетрантность navern

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: Хочу написать патч

2015-08-26 Пенетрантность Alex Domoradov
 В апаче есть 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: Хочу написать патч

2015-08-26 Пенетрантность kpoxa
Кстати, а опишите задачу полностью, наверняка решается без подобного
кодоблудия.

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: Хочу написать патч

2015-08-26 Пенетрантность Oleksandr V. Typlyns'kyi
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: Хочу написать патч

2015-08-25 Пенетрантность Konstantin Tokarev


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