Nginx и обычные cgi скрипты

A1x

Новичок
Пытаюсь настроить Nginx для запуска обычных скриптов cgi. Сейчас поставил
fcgiwrap-1.0.3_3 Simple FastCGI wrapper for CGI scripts
spawn-fcgi-1.6.3 spawn-fcgi is used to spawn fastcgi applications

Запускаю spawn-fcgi с опцией -F N - при этом создается фиксированное число N процессов fcgiwrap,
которые постоянно висят в памяти и могут обрабатывать параллельно не более N запросов.
Если запросов меньше все N процесов продолжают висеть

Можно ли это сделать более правильно, чтобы процессы форкались динамически как это делает апач?
 

fixxxer

К.О.
Партнер клуба
А зачем динамически? Запусти сразу сколько надо с небольшим запасом.
 

A1x

Новичок
Да так и сделал. Сначала запустил 100 - все начало тормозить, оставил 50, пока полет нормальный.
Можно конечно апач прикрутить бэкендом чисто для cgi ))
 

fixxxer

К.О.
Партнер клуба
Да можно и что нить попроще, mini_httpd какой-нибудь там.
 

MiksIr

miksir@home:~$
а почему 100? или почему 50? как считали, из каких соображений вывели эту цифру?
 

A1x

Новичок
MiksIr Сайт проверяет различные параметры доменных имен типа google PR, количества ссылок, etc.
Для того чтобы достать все эти данные при каждом запросе запускается около 10 cgi скриптов по ajax, т.е. практически одновременно. Из этих соображений показалось что 100 должно было бы хватить с головой. После того как ВПС начал тормозить я уменьшил это число до 50 - тормоза исчезли. Вот и все соображения.
 

MiksIr

miksir@home:~$
Ну так перепишите нормально, что бы небыло 10 запросов на один поиск.
И если этим сервисом пользуется один человек в минуту, можно спокойно поставить 10-15 скриптов и этого будет хватать.
 

A1x

Новичок
MiksIr ну там нельзя переписать чтобы не было этих 10 запросов. Один скрипт лезет в гугл, другой в хуиз, третий еще куда-то - и все должно выводиться на одной странице.
да собственно проблемы нет, все хорошо работает как есть на данный момент.
 

MiksIr

miksir@home:~$
Можно. Один запрос на сервер, параллельный запрос на все источники одновременно и по мере поступления ответов - выплевывание их клиенту для отображения.
 

fixxxer

К.О.
Партнер клуба
Ну я так понимаю что если бы можно было эту хреновину переписать, прежде всего там бы не было CGI ;)
 

MiksIr

miksir@home:~$
да.... возможно... ну можно пожертвовать скоростью и делать запросы один за одним... банально на nginx запрашивать по одному собирать и потом пачкой выдать. Десять запросов на один хост... никогда не пробовал, но есть же ограничения на число одновременных коннектов к хосту? Или это на аякс не распространяется?
 

Lirik

Новичок
MiksIr
распространяется, 2-3 максимально с одной страницы вроде браузеры разрешают...тут даже что-то пишут как обойти, но ясное дело что пользователь это делать не будет. посмотрел в opera, там тоже можно менять Max Persistent Connections Server(6 по-умолчанию) и Max Connections Total,Max Connections Server.
 

A1x

Новичок
Жертвовать скоростью нельзя.
Конечно там много чего можно улучшить. Но переписывать это нет никакого желания, пусть его злая собака переписывает
 
Сверху