td;dr - PHP-FPM топ используем его
# CGI (Common Gateway Interface)
Протокол взаимодействия между веб-сервером и программами для обработки динамических запросов. Принцип работы CGI:
1. Когда пользователь отправляет запрос на веб-сайт, веб-сервер получает этот запрос.
2. Если запрос требует выполнения программы для создания динамической страницы (например, обработка формы или генерация содержимого на лету), вступает в игру CGI.
3. Веб-сервер запускает программу (скрипт) как отдельный процесс на сервере.
4. Программа обрабатывает запрос, генерирует HTML или другой контент, который будет отправлен обратно пользователю.
5. Результат работы программы возвращается веб-серверу, который передает его обратно пользователю в виде ответа на запрос.
Главный недостаток в производительности из-за необходимости постоянного запуска новых процессов для каждого запроса.
# FastCGI
Улучшенная версия протокола CGI, решающая некоторые проблемы с производительностью. Он не создает новый процесс под каждый запрос, а использует постоянные процессы.
Основные идеи FastCGI:
1. **Постоянные процессы:** Вместо того чтобы создавать и уничтожать процесс для каждого запроса, FastCGI создает постоянные процессы, которые остаются активными и могут обслуживать несколько запросов подряд.
2. **Многозадачность:** FastCGI позволяет одному процессу обрабатывать несколько запросов одновременно, что сокращает задержки и улучшает производительность.
3. **Сокеты или TCP/IP:** FastCGI может взаимодействовать с веб-сервером через сокеты или TCP/IP, что упрощает коммуникацию между веб-сервером и процессами FastCGI.
# PHP-CGI
Реализует протокол CGI
# PHP-FPM (FastCGI Process Manager)
Реализует протокол FastCGI