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腳本。
他倆並沒有一定的可比性,因為不是一個東西。
參考資料: