Автор оригинала: David Wong.
CGI(Общий интерфейс шлюза c e)
Поскольку веб-сервер хочет передать этот запрос кому-то, кто может его обработать, должен ли он сообщать людям некоторую базовую информацию, которую они могут понять?
Какую основную информацию веб-сервер передает серверному анализатору для обработки запросов? Url, строка запроса запроса get, данные POST, заголовок Http и т. Д., Затем CGI указывает, какие параметры передавать, в каком формате передавать и в каком формате возвращать после обработки запроса серверной частью.
Концепция: CGI (Общий интерфейс шлюза) называется “Общий интерфейс шлюза”. Веб-сервер и PHP-приложение “разговаривают” с инструментом, его программа должна запускаться на сетевом сервере. CGI может быть написан на любом языке, если он имеет стандартные входные, выходные и переменные среды. Другими словами, CGI используется для обеспечения моста связи между веб-серверами и программами, которые реализуют протокол CGI на серверной части, и уменьшения связи между ними.
Дефекты: Неэффективный режим “FE” – это Вилка и выполнение. После того, как поступит каждый веб-запрос, он запустит программу PHP. После обработки запроса он завершит работу, потратит ресурсы впустую, и сервер снизится в большом количестве запросов.
FastCGI
Есть ли более эффективное решение? Мы можем уйти до того, как закончим?
Это приводит к FastCGI, который также можно понимать как протокол для улучшения протокола CGI, от исходного режима “FE” до режима “LL”, то есть режима длительного действия, после запуска резидентной памяти. Аналогично, он не зависит от языка, если у вас есть стандартные входные и выходные данные и переменные среды, тогда все в порядке.
FastCGI запускает главный процесс, который считывает и обрабатывает базовые файлы конфигурации, инициализирует среду, а затем создает несколько рабочих процессов для обработки запросов на основе конфигурации. И количество работников может быть динамически скорректировано.
PHP-CGI
Fastcgi звучит здорово. Кто-нибудь им пользуется? Php-cgi-это интерпретатор PHP для протокола FastCGI.
Дефекты:
После изменения конфигурации php .ini вам необходимо перезапустить процесс php-cgi и завершить запущенный процесс. Единый процесс, отсутствие способности к управлению процессами, низкая эффективность.
PHP-FPM
Концепция: Менеджер,реализующий управление несколькими процессами FastCGI (пул процессов). После открытия вы увидите несколько процессов php-cgi, управляемых php-fpm.
Некоторый прогресс:
После изменения конфигурации переход происходит плавно, новый рабочий процесс использует новую конфигурацию, а запущенный рабочий процесс автоматически завершается после обработки текущего запроса. Мультипроцесс более эффективен, чем один процесс.
Источник: http://lib.csdn.net/article/p…