Re: nginx (Windows XP) + php-cgi.exe - одновременно обрабатывает только один запрос - остальные ждут
Sergey Shepelev
temotor на gmail.com
Пн Май 31 03:35:52 MSD 2010
>[i]Смысл правильно проектировать системы. Скрипты исполняемые 30 секунд это не ОК.[/i]
>
> Дело в том, что мне нужно запускать через exec некоторые специфичные Windows-программы, т.е. скрипт работающий 30 секунд - это не тормознуто собирающаяся веб-страница.
Это тормознуто собирающаяся веб-страница. Какая разница — из-за exec
или mysql_exec или smarty_render?
"Правильно спроектированная система" запускает эти долгие процессы в
фоновом режиме, а скриптом только получает их состояние/результат.
Другой вопрос, что эта правильность часто может быть дороже, чем
неудобства от неправильной схемы.
> [i]Какой смысл гонять php-cgi на windows да еще с nginx?[/i]
>
> Я погонял всё это на Apache2 - он почему-то в 10 раз медленне запускает программы (в чём там дело не разбирался ещё), плюс занимает он в ОЗУ места в 3 раза больше nginx (~18 Мб разницы, но это довольно критично для меня), хотя, конечно, он работает с несколькими одновременными запросами.
Он хавает больше памяти ровно потому что работает одновременно с
несколькими запросами. (ну и ещё потому что вы не отключили ненужные
модули, но, в основном, первое)
Потребляемая память это не постоянная величина для программы. Нет
такого, что "апач жрёт 20мб, а nginx 2". Хорошо кастрированный апач
будет занимать те же несколько мегабайт, а nginx с большими буферами
те же десятки-сотни мегабайт. Так что если вы гонитесь за low memory
footprint, то есть смысл распросить об этом в рассылке апача. Там на
обработке PHP запросов съели больше собак, чем все корейцы.
> Но, если отойти от моей проблемы... Допустим есть сервер под Windows - и есть желание запустить http-сервер на базе nginx и php. Это реализуемо вообще?
Это реализуемо, просто смысла в этом нет никакого. (даже если отойти
от вашей проблемы)
Несколько лет назад у меня тоже горело шило в одном месте и я хотел
везде поставить nginx, чтоб всё было круто. Честно, так и было. И даже
поставил на одном сервере. И другие люди ставят. Реализуемо.
Сейчас (на том же сервере) я бы поискал rewrite модуль для IIS и
настроил его. Потому что завтра туда придёт windows-админ, который
хорошо знает IIS и сможет поменять всё как попросят, ему не надо будет
изучать новую технологию, от которой и выигрыша нет никакого.
(для других проектов, конечно, используется nginx. Но там не винда и
не PHP, это важно; ну, в основном, важно что не винда)
> Я знаю, что сейчас nginx существует тестово в Windows, что всё через select и не так спешно как бы хотелось.
Видите, разумом, логикой вы понимаете, что nginx в этой ситуации не нужен. :)
Подробная информация о списке рассылки nginx-ru