Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: nginx + CGI
Я могу ошибаться, но в дистрибутиве fastcgi, насколько я помню, есть
cgi-враппер. Так или иначе, я не верю, что не существует нативной реализации
cgi-враппера для fastcgi.
И кроме того, написание cgi-враппера для fastcgi на C -- это не домашнее ли
задание после прочтения документации по fastcgi?
----- Original Message -----
From: "MZ" <zuborg@xxxxxxxxxxxxxxxxxxx>
To: nginx-ru@xxxxxxxxx
Sent: Monday, December 29, 2008 3:18:37 PM GMT +01:00 Amsterdam / Berlin / Bern
/ Rome / Stockholm / Vienna
Subject: RE: nginx + CGI
В пн, 29/12/2008 в 15:54 +0200, maxhl@xxxxxxxxxxxxxx пишет:
> >Правильно, получится практически полноценный веб-сервер
> >nginx с поддержкой cgi, быстрый и оптимизированный, с поддержкой kqueue,
> >все дела.. И даже новоявленный переделаный из http-парсера парсер
> >fcgi-запросов можно выбросить. А можно и оставить - чем плохо иметь
> >веб-сервер который умеет и http и fcgi ?
>
> Неправильно. Nginx это уже полноценный веб-сервер. CGI программы пишут, как
> правило сомнительные программисты чтобы скрыть свой непрофессианализм.
> Почему Вас совершенно не смущает невозможность миграции так называемых
> cgi-програм с linux под win? а иногда даже с linux под freebsd ...
> умудряются же так скомпилировать ... :-))) Ну а про большие нагрузки вообще
> и речи быть неможет ... Используйте lighthttpd вполне работоспособная связка
> ... если нужен клиентсткий ip то можно первый апач прикрутить предварительно
> викинув из него все ненужное он от этого похудеет до 1м в памяти ...
> Нужно понимать разницу между nginx и apache. Поищите здесь по форуму - nginx
> заточен на обработку не блокирующих-ся запросов. Тоесть запросов которые
> пришли - ушли, в них недолжно быть долгих вычислений, коннектов к базе. В
> этом весь смысл !!! Именно поэтому два воркера nginx справляются со всей
> нагрузкой. Ваши cgi программы это 100% блокирующие-ся запросы... они будут
> что то считать, коннектиться к базе и на время пока они не отдадут ответ
> соответствующие воркеры будут блокированы - то есть не смогут обрабатывать
> другие запросы. Поэтому Вам понадобится не 2 воркера а 200 ... 2000 ... в
> зависимости от нагрузки. Именно поэтому нельзя на встроенном в nginx perl
> писать cgi приложения ... а хочетца :-)
> Пускалка cgi нужна на с++ и хорошо бы ей уметь работать через unix-socket
> ...
>
> С уважением Max 71006063
Шутить изволите. Почему-то для того чтобы передавать ответ из сокета
fcgi-сервера или http-бекенда не надо блокировок, а вот для вывода
stdout-а cgi-программы уже вдруг надо заблокироваться, так, что ли?
Блокировка работы cgi-программы точно такая же как и у воркера fcgi, и
тех и других может быть много что не никоим образом не мешает работать
nginx-у
Ещё раз повторюсь - я нигде и не коим образом не говорю что fcgi это
плохо и весь fcgi софт надо срочно переводить на cgi? fcgi это
действительно очень (а может и самый) правильный подход к генерации
динамического контента. И для одновременной генерации ответов на 200
запросов все равно понадобится 200 процессов или хотя бы тредов, как не
крути.
Смысл моего поста в том что не надо писать fcgi-прокси на перле когда
уже есть готовый http-прокси - nginx, который можно доделать для
поддержки cgi и получить гораздо! большую производительность чем если бы
проксированием fcgi->cgi занимался перл.
--
Regards,
Valery Kholodkov
|