CGI
CGI:通用網關介面(Common Gateway Interface),是Web 服務器和請求處理程式之間傳輸資料的一種標準或協議,只要遵循這個標準就可以用任何動態語言實作處理程式,
通常所說的CGI是指CGI程式,即實作了CGI介面標準的程式,
CGI程式的作業方式
Web服務器一般只處理靜態檔案請求(如 jpg、htm、html),如果碰到一個動態腳本請求(如php),web服務器主行程,就fork出一個新的行程來啟動CGI程式,也就是將動態腳本請求交給CGI程式來處理,啟動CGI程式需要一個程序,比如,讀取組態檔,加載擴展等,CGI程式啟動后,就會決議動態腳本,然后將結果回傳給Web服務器,最后Web服務器再將結果回傳給客戶端,剛才fork的行程也會隨之關閉,
這樣,每次用戶請求動態腳本,Web服務器都要重新fork一個新行程,去啟動CGI程式,由CGI程式來處理動態腳本,處理完后行程隨之關閉,
這種作業方式的效率是非常低下的,
FastCGI
FastCGI,主要行為是將CGI解釋器行程保持在記憶體中并因此獲得高效的性能,
FastCGI行程管理器需要單獨啟動,啟動FastCGI后,會生成一個FastCGI主行程和多個子行程(子行程其實就是CGI解釋器行程),
當客戶端請求Web服務器上的動態腳本時,Web服務器會將動態腳本通過TCP協議交給FastCGI主行程,FastCGI主行程根據情況,安排一個空閑的子行程來決議動態腳本,處理完成后將結果回傳給Web服務器,Web服務器再將結果回傳給客戶端,該客戶端請求處理完畢后,FastCGI子行程并不會隨之關閉,而是繼續等待主行程安排作業任務,
PHP-FPM
PHP-FPM,FastCGI行程管理器(FastCGI Process Manager),提供了更好的PHP行程管理方式,可以有效控制記憶體和行程、可以平滑多載PHP配置等,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/71686.html
標籤:PHP
上一篇:設計模式之單例模式
