Re: мультипользовательские процессы http сервера

Slava Kokorin slava.kokorin at gmail.com
Thu Dec 18 18:57:07 MSK 2008


*>> И далее, выполнение всех http-запросов в пределах текущей сессии
пользователя должно выполняться от имени этого >> пользователя.
*Если я правильно понял надо чтобы все процессы исполнялись от имени (uid)
этого пользователя.

Если пользователей немного и нужно чтобы обязательно чтобы worker-ы apache
работали из-под пользователя, то я бы попробовал сделать на каждого
пользователя свой instance apache (httpd.conf) с небольшим количеством
воркеров. Сам апач установлен и настроен в единственном числе.
Т.к. у каждого свой document_root и логи и порты у всех разные (я бы сделал
например 8000+uid), то конфиг нужно генерить скриптиком.
Авторизацию я бы возложил на nginx. В nginx-е придётся пошаманить чтобы
proxy_pass проходил на нужный instalnce apache (localhost:порт).



18 декабря 2008 г. 17:49 пользователь Холстинников Григорий <
scarych at yandex.ru> написал:

> Доброго времени суток всем.
> Прошу помощи и совета в реализации следующей задачи  ( гуглинг пока-что
> ничего не дал :( )
> Итак, требуется реализовать следующее взаимодействие серверных компонент.
>
> У нас есть пользователи, прописанные на сервере системно, т.е. запись для
> каждого из них есть в /etc/shadow, /etc/groups , /etc/passwd, etc.
> Эти пользователи авторизуются в www-клиенте (браузере), используя свои
> системные логин и пароль.
> После авторизации нужно по логину пользователя или по логин+ip направить
> пользователя в назначенный ему Document_root. Описание связок "login, ip,
> document_root" хранится отдельным конфигурационным файлом.
> И далее, выполнение всех http-запросов в пределах текущей сессии
> пользователя должно выполняться от имени этого пользователя.
>
> В распоряжении есть nginx и apache 2.2.
> Выполняться будут perl, php и, наверняка, с++-cgi скрипты.
> Нагрузка ~1.5-2K пользователей одновременно.
> Частота запросов: частая.
> Мощность серверов: высокая.
>
> Какие есть возможности реализации такого решения стандартными средствами?
>
> В моем понимании это можно было бы построить следующим образом:
> nginx запускается под рутом, читает /etc/shadow для авторизации.
> далее, в директиве server { ... } выполняется некий pl скрипт, в который
> передаются текущий remote_user и remote_addr, а он возвращается
> document_root и вызывает запуск fastCGI процесса для обработки .pl и .php
> под текущим пользователем.
> Либо каким-то образом порождает форк Апача с текущим пользователем и все
> запросы проксирует на него.
> Вопрос состоит в том, возможна ли такое разруливание и как? Моих знаний
> данных технологий пока не хватает :(
>
> Заранее спасибо за участие :)
>
>


-- 
Regards,
Slava
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20081218/734c3f48/attachment.html>


More information about the nginx-ru mailing list