<i>&gt;&gt; И далее, выполнение всех http-запросов в пределах текущей сессии пользователя должно выполняться от имени этого &gt;&gt; пользователя.<br></i>Если я правильно понял надо чтобы все процессы исполнялись от имени (uid) этого пользователя.<br>
<br>Если пользователей немного и нужно чтобы обязательно чтобы worker-ы apache работали из-под пользователя, то я бы попробовал сделать на каждого пользователя свой instance apache (httpd.conf) с небольшим количеством воркеров. Сам апач установлен и настроен в единственном числе.<br>
Т.к. у каждого свой document_root и логи и порты у всех разные (я бы сделал например 8000+uid), то конфиг нужно генерить скриптиком.<br>Авторизацию я бы возложил на nginx. В nginx-е придётся пошаманить чтобы proxy_pass проходил на нужный instalnce apache (localhost:порт).<br>
<br><br><br><div class="gmail_quote">18 декабря 2008 г. 17:49 пользователь Холстинников Григорий <span dir="ltr">&lt;<a href="mailto:scarych@yandex.ru">scarych@yandex.ru</a>&gt;</span> написал:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Доброго времени суток всем.<br>
Прошу помощи и совета в реализации следующей задачи &nbsp;( гуглинг пока-что ничего не дал :( )<br>
Итак, требуется реализовать следующее взаимодействие серверных компонент.<br>
<br>
У нас есть пользователи, прописанные на сервере системно, т.е. запись для каждого из них есть в /etc/shadow, /etc/groups , /etc/passwd, etc.<br>
Эти пользователи авторизуются в www-клиенте (браузере), используя свои системные логин и пароль.<br>
После авторизации нужно по логину пользователя или по логин+ip направить пользователя в назначенный ему Document_root. Описание связок &quot;login, ip, document_root&quot; хранится отдельным конфигурационным файлом.<br>
И далее, выполнение всех http-запросов в пределах текущей сессии пользователя должно выполняться от имени этого пользователя.<br>
<br>
В распоряжении есть nginx и apache 2.2.<br>
Выполняться будут perl, php и, наверняка, с++-cgi скрипты.<br>
Нагрузка ~1.5-2K пользователей одновременно.<br>
Частота запросов: частая.<br>
Мощность серверов: высокая.<br>
<br>
Какие есть возможности реализации такого решения стандартными средствами?<br>
<br>
В моем понимании это можно было бы построить следующим образом:<br>
nginx запускается под рутом, читает /etc/shadow для авторизации.<br>
далее, в директиве server { ... } выполняется некий pl скрипт, в который передаются текущий remote_user и remote_addr, а он возвращается document_root и вызывает запуск fastCGI процесса для обработки .pl и .php под текущим пользователем.<br>

Либо каким-то образом порождает форк Апача с текущим пользователем и все запросы проксирует на него.<br>
Вопрос состоит в том, возможна ли такое разруливание и как? Моих знаний данных технологий пока не хватает :(<br>
<br>
Заранее спасибо за участие :)<br>
<br>
</blockquote></div><br><br clear="all"><br>-- <br>Regards,<br>Slava<br>