ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: мультипользовательские процессы http сервера
  • From: "Slava Kokorin" <slava.kokorin@xxxxxxxxx>
  • Date: Thu, 18 Dec 2008 18:57:07 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:in-reply-to:mime-version:content-type:references; bh=etDNq+VYRpkh7b/gcjNEU1yYZGQYY4wkmk+wel/yJG8=; b=jcM6z9ClxLfdRDu4WFqlg1SFjFke9afRXn/0AvwKXlPyDRryPLUnDfr43Z0LWehsd1 fD92hHZex9Kf54ls74vOyZJIdUvwGBBG36w5OrDG3h5xOme8BWqYIeqFLkDsEXg9n1U7 2P+aIzfKJuaIJzIhhdYWcOG5Fb45NE2Oea5Iw=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version :content-type:references; b=JFupZaDFrI2XiEe10mSWj8RzZATeD7peImuezOigD+MAcZbR8fGnp5LBxbiOyVeTDJ Dw3sBIDHu+9s7pThip1G6U2kTU3XVJQy9HmAfpa1JM+od2/xlPo5JYh1tzC0/9KMtWfT cFwm6hGKdgs867LqPz0b1GQXPm6bji6dWNARQ=
  • In-reply-to: <129201229611773@xxxxxxxxxxxxxxxxxxx>
  • References: <129201229611773@xxxxxxxxxxxxxxxxxxx>

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

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



18 декабря 2008 г. 17:49 пользователь Холстинников Григорий <scarych@xxxxxxxxx> написал:
Доброго времени суток всем.
Прошу помощи и совета в реализации следующей задачи  ( гуглинг пока-что ничего не дал :( )
Итак, требуется реализовать следующее взаимодействие серверных компонент.

У нас есть пользователи, прописанные на сервере системно, т.е. запись для каждого из них есть в /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


 




Copyright © Lexa Software, 1996-2009.