nginx + CGI

Большой Хо grossho at gmail.com
Wed Jan 14 15:11:36 MSK 2009


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

А если от контролирующего процесса форк сделать? Так будет более
"естественно": воркеры работают с запросами, а контролирующий
управляет запуском, перезапуском и т.д. При таком подходе
скроссировать работу воркера и cgi стартапера будет более сложной
задачей, чем напрямую. Поэтому и интересовался о протоколе для
"внутреннего использования" nginx сервера. Работу с модулями (не
только CGI) тогда можно было бы нарастить иным способом, кроме как
интегрированием непосредственно в код nginx сервера. Например, можно
было бы исполнять php сошку, вместо exec вызовов.

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

Вроде это умеет делать пакет с http://fastcgi.com Не знаю, правда, как
насчет стабильности, но она CGI умеет проксировать.

>> * fastcgi насколько оптимален как протокол для работы такого рода?
>> Рассматривалось ли решение по созданию специализированного протокола
>> под nginx бакэнды и удаленные воркеры?
>
> Нет. Потому что в этом нет никакого смысла: CGI от этого быстрее не станет.

Именно CGI - да.


More information about the nginx-ru mailing list