LINUX.ORG.RU
решено ФорумAdmin

[nginx] Можно ли виртуалхосты держать под разными юзерами, как в случае mpm_itk апача?

 


0

2

Нигде вменяемого ответа не нашел.
Кто-то предлагает кучу nginx'ов пускать (отдельный вопрос, как они уживутся), кто-то просто права на каталоги юзеров групповые выдать (что в моем случае неактуально, ибо тогда начнется ад с правами на фтп).

★★★★★

Ответ на: комментарий от leave

Что зачем? Я не хочу, чтобы юзеры видели контент друг друга. Вообще, никак.
Пока что это все крутится на apache+mpm_itk для динамики и nginx для статики, доступ nginx к статике имеет через setfacl-костыль, назначенный монопольному nginx-юзеру.

pekmop1024 ★★★★★
() автор топика
Ответ на: комментарий от pekmop1024

правильно посматриваете, но это права на php и файлы читаемые php,
для всего остального оно вас не устроит. хотя в плане выполнения php это как раз то что нужно.

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

Видимо, так оно все и останется...
Единственный вопрос - насколько php-fpm лучше/хуже, чем mpm_itk для php на бэкенде? В гуглях противоречивая информация.
По статике mpm_itk, конечно, сливает всем, но за статику отвечает nginx.

pekmop1024 ★★★★★
() автор топика
Ответ на: комментарий от pekmop1024

я не использовала mpm_itk, у меня был apache2+mod_php -> nginx реверс прокси, разделение прав было не принципиально,
сейчас php-fpm + nginx , права раскидала немного, но это больше для удобства, чем для разделения. В целом php-fpm работает чуть-чуть медленнее чем mod_php, зато память расходует более консервативно

настраивать несложно, проблем каких-либо не замечала

Sylvia ★★★★★
()

> Можно ли

нельзя конечно же, кроме как извратом с кучей nginx-ов по разным портам и под разными юзерами
он не предназначен для такой задачи

если уж сильно нужно изолировать и чтоб непременно статику через nginx, то наверное будет проще юзеров в контейнеры позапихивать. но тут опять таки непонятка с адресами или же 2 фронтенда городить (nginx 80 --> server { --> proxy_pass --> fastcgi_pass)

все это ужасно и может быть оправданно в исключительных случаях, имхо

Единственный вопрос - насколько php-fpm лучше/хуже, чем mpm_itk


лучше. а на сколько нужно? вы вообще понимаете хоть насколько вопрос идиотский? или у вас mpm_itk отдельно от апача крутится?

советую погуглить теорию о nginx, fastcgi, и собственно о mpm_itk - тогда и вопросы сами-собой отпадут.
mpm_itk запускает для каждого юзера копии апача, затем создает треды на запросы. отсюда большое потребление памяти (в первую очередь). php-fpm запускает копии fastcgi-сервера, причем строго определенное кол-во. нужен вам апач, значит и mpm_itk альтернативы нет (например .htaccess). не нужен - так нахрена он нужен? производительность... php-fpm можно сравнивать с prefork-ом но для голого fcgi. он будет быстрей при большой нагрузке (и правильной настройке и при правильном железе с кучей ядер), чем апач с mpm-itk... на одноядерном тазике 50 одновременных запросов к 50ти процессам php-fpm у вас вообще вызовут лютые тормоза быть может. а может и не быть...

вообще к чему вы это все городите? то есть смысл? у вас какие-то мегавысоконагруженные проекты там что ли? или просто для понту? ведь обе эти вещи создавались именно под высокую нагрузку...

r0mik
()
Ответ на: комментарий от r0mik

Проект высоконагруженный есть. Точнее, он высоконагруженным станет в самое ближайшее время - поэтому я заранее и озаботился сим вопросом.
Но это таки не сервер для шаред-хостинга, на котором сотня сайтов жить будет.

Просто несколько наших проектов с разным обслуживающим персоналом (зачастую далеким-наемным), поэтому оградить их друг от друга необходимо в целях безопасности.

Да, и от апача можно отказаться (так, скорее всего и сделаем, если не потянет он нагрузки). Поэтому и возник вопрос о php-fpm в том числе, который можно было бы оставить просто в связке с nginx.

pekmop1024 ★★★★★
() автор топика

У меня такая схема:

nginx работает как nginx:httpd
php-fpm-процессы - как user1:user1, user2:user2 и т.д.

Все каталоги у юзера имеют владельцем user1:httpd, user2:httpd... и права 750 (файлы, соответственно, 640).

Чтобы юзеру не ломать голову на счёт сохранения группы при создании своих каталогов и файлов на каталогах стоит флаг gid (chmod +s).

Получается, что nginx способен читать статику из любого каталога, а юзеры могут читать/писать только из своих каталогов, хоть из шелла, хоть через PHP (они не в группе httpd).

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

nginx httpd:httpd

php-fpm как user1:user1 user2:user2
unix-сокеты php - mode 600 httpd:httpd


файлы принадлежат пользователям, никаких suid, sgid

nginx раздает статику которая доступна по чтению other , конфиги защищены mode 600 (читаемы только пользователем и его php процессом)

у меня вот так

Sylvia ★★★★★
()
Ответ на: комментарий от leave

угу, это я что-то не в ту степь написал, видать праздники сказываются...

r0mik
()
Ответ на: комментарий от KRoN73

Спасибо, как раз выглядит как то, что нужно.
У меня сейчас похожая схема с apache+nginx

pekmop1024 ★★★★★
() автор топика
Ответ на: комментарий от guyvernk

разные пулы , на разных сокетах, с разными user id, не перечислять же мне их все :) сейчас их 3, если потребуется - будет больше, или меньше, если я выкину что-то


ps: если нужно кеширование php для fpm, вместо xcache лучше eaccelerator, он корректно работает.

Sylvia ★★★★★
()

nginx работает как state machine. У него даже тредов нет. Считай его одним процессом. Как в такой ситуации юзеров менять? От совсем никак, если по нормальному.

Nefer
()
Ответ на: комментарий от pekmop1024

Поэтому, кстати, на шаред-хостинге мастерхоста до сих пор 0.9.5.x

pekmop1024 ★★★★★
() автор топика
Ответ на: комментарий от pekmop1024

The user cache functions are removed

это ? так это API для скриптов, eaccelerator_put(),
глобальный кеш как был так и остался

Sylvia ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.