Пускач для FastCGI
Пускач [puskach] — это лёгкий сервер FastCGI-приложений с открытым исходным кодом, работающий на платформе UNIX (лицензия). Он поддерживается всеми web-серверами, реализующими интерфейс FastCGI, протестирована совместная работа с Nginx и Lighttpd. Основная функциональность:
- Запуск FastCGI-процессов и поддержание их в рабочем состоянии
- Организация параллельной обработки запросов разными FastCGI-процессами
- Ограничение времен обработки запроса, простоя, операций В/В
- Ограничение потока запросов и числа параллельно работающих приложений
Пользовательские FastCGI-приложения (скрипты) — самая потенциально опасная и нестабильная часть серверного ПО. Применение Пускача позволяет повысить стабильность работы приложений, упростить их написание и отладку, исключить их умышленную перегрузку.
Интерфейс FastCGI
FastCGI — это интерфейс взаимодействия между web-сервером и пользовательским приложением (или скриптом), реализованный на принципах CGI, но совершенно отличающийся технически. FastCGI-скрипт — это служба (сервис), поточно обрабатывающая запросы от web-сервера. За счет перехода к службам не тратится время на многократный запуск скрипта, появляется возможность кешировать данные, ресурсы, соединения в самом скрипте.
FastCGI-приложения можно писать на любом языке, для самых распространенных языков (C/C++, Perl, PHP, Java и др.) есть библиотеки, существенно упрощающие процесс. Переделка уже готового CGI-скрипта, написанного, например, на Perl, занимает не более 10 минут.
Аналоги
Характеристика / возможность | Пускач | PHP-FPM | spawn-fcgi |
---|---|---|---|
Поддерживаемые языки | Все | PHP | Все |
Автоматическое управление числом рабочих процессов в зависимости от нагрузки | Да | Частично | Нет |
Поддержка таймаутов: обработки запроса, операций В/В | Да | Частично | Нет |
Специфичная настройка пула рабочих процессов для отдельного скрипта | Да | Нет | Нет |
Логгирование STDERR скрипта | Да | Да | Нет |
Настройки смены пользователя для рабочих процессов, chroot, настроек среды | Да | Глобально | Глобально |
Корректная обработка запроса, если число одновременно пришедших запросов превышает размер пула обработчиков | Да | Да | Да |