CGI (通用網關接口)
CGI
cgi即 Common Gateway Interface 譯作 通用網關接口
是應用程序與應用程序之間的輸入輸出協議。比如我們寫信,規定了開頭一句寫稱呼,中間寫內容,最後署名和日期。看到這種格式,我們就知道這是一封信。我要知道寫這封信的人或者日期。那麼我就直接信的最後兩行。cgi就是應用程序與應用程序之間通信格式規定。
php-cgi
cgi可以由任何語言實現,比如php-cgi就是一個實現了cgi的php應用程序,主要功能是解析cgi數據,使用php處理數據,然後在通過cgi返回給webserver。
fast-cgi
當應用程序需要使用cgi通信的時候,首先要創建進程,然後讀取配置,處理完數據然後返回,最後銷毀進程。每次啟動銷毀進程,還有讀取配置,需要消耗大量系統資源,和花費更多的時間。當遇到大並發時候就會出現問題。造成擁堵。fast-cgi就是cgi的改進版,fast-cgi是常駐內存。 節省了創建和銷毀進程的消耗,達到性能更優的目的。
php-fpm
php-fpm是實現fast-cgi的程序。php-fpm管理着fast-cig進程,當啟動php-fpm時,程序會創建幾個fast-cgi進程等待處理請求。當有進程掛掉時,php-fpm也會檢查,然後自動重啟新的進程。