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

Kirill A. Korinskiy catap at home.catap.ru
Thu Dec 18 18:26:10 MSK 2008


At Thu, 18 Dec 2008 17:49:33 +0300,
Холстинников Григорий wrote:
> 
> Доброго времени суток всем.
> Прошу помощи и совета в реализации следующей задачи  ( гуглинг пока-что ничего не дал :( )
> Итак, требуется реализовать следующее взаимодействие серверных компонент.
> 
> У нас есть пользователи, прописанные на сервере системно, т.е. запись для каждого из них есть в /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 под текущим пользователем.

Это все можно ловко сделать добавив только pam-based авторизацию. Если
document_root будет коллерилоровать с $HOME то станет совсем
хорошо. Хотите такой модуль?

> Либо каким-то образом порождает форк Апача с текущим пользователем и
> все запросы проксирует на него.

proxy_pass вам не хватает? Почему?

> Вопрос состоит в том, возможна ли такое разруливание и как? Моих знаний данных технологий пока не хватает :(
> 
> Заранее спасибо за участие :)
> 
> 





More information about the nginx-ru mailing list