nginx + CGI

Igor Sysoev is at rambler-co.ru
Wed Jan 14 14:20:30 MSK 2009


On Wed, Jan 14, 2009 at 02:08:04PM +0300, Большой Хо wrote:

> > Это не сложная задача. Эта задача требует времени. Есть два решения:
> >
> > 1) В лоб: воркер, который получил запрос для CGI, делает fork/exec.
> 
> По этому поводу есть вопросы-пожелания-предложения:
> * объем кода воркера должен ли быть малым? Стоит ли создать как
> внешнюю программу по отношению к самому nginx, чтобы операция fork
> обходилась как можно дешевле (как сделано для suexec);

Нет, воркеры - это те самые рабочие процессы, которые обслуживают остальные
соединения. И да, если пришёл запрос для CGI, то этот воркер с тысячами
соединений будет делать fork/exec, а ядро в процессе exec будет делать
для сокетов FD_CLOEXEC. Поэтому это решение называется "в лоб".

А внешний процесс - это как раз второй вариант.

> * имееет ли смысл делать preforked процессы и как это лучше делать (в
> зависимости от нагрузки на систему, количество процессоров, скорости
> поступления новых запросов)?
> * fastcgi насколько оптимален как протокол для работы такого рода?
> Рассматривалось ли решение по созданию специализированного протокола
> под nginx бакэнды и удаленные воркеры?

Нет. Потому что в этом нет никакого смысла: CGI от этого быстрее не станет.


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list