nginx是作什麼用的
是瀏覽器(用戶)與服務器交互的一個服務,他只能處理靜態文件。若是發現是本身處理不了的文件,根據配置能夠將其轉發到對應的其餘服務上
什麼是CGI
1.當server收到一個php的請求時,會啓動一個程序去處理當前的請求,而這個程序就是CGI。
2.CGI會查看phpini的配置並載入、初始化進程並處理請求,這個過程在每一次處理php請求時都會發生,因此會形成嚴重的資源開銷
3.CGI的中文含義是通用網關接口,也就是說只要可以返回標準html數據的服務均可以叫作CGI。因此CGI不僅僅是php纔有的東西
什麼是fastCGI
由於上面第二條的問題,當請求量過大時CGI程序會嚴重浪費系統資源的。這樣fastcgi就是爲了解決這個問題。
fastcgi會提供這樣的功能:首先會由某個程序讀取相應的配置文件並初始化執行環境,當這一系列步驟完成以後,他會一下生成不少個cgi進程(也就是進程池),這樣在之後處理php的請求時就不須要頻繁的「讀取配置、建立進程、銷燬進程這樣的步驟了」,因此fastcgi能夠理解爲就是爲了實現這種效果而產生的一種處理辦法
什麼是php-fpm
用來實現fast-cgi的操做
「php-fpm是fastcgi進程的管理器,用來管理fastcgi進程的」,這句話能夠理解成php-fpm就是可以實現fastcgi功能的程序,他目前由php官方集成到php內核中。因此就是若是要實現cgi的進程池功能就須要使用php-fpm
什麼是PHP-CGI
php-cgi只是解釋PHP腳本的程序而已
fast-CGI 與 php-cgi關係
一個是協議,在php中由php-fpm實現,管理着解析php腳本的進程
另外一個是一個程序,專門處理php腳本。
他倆並無必定的可比性,由於不是一個東西。