詳解CGI、FastCGI、PHP-CGI、PHP-FPM

1. 什么是CGI和FastCGI

  • CGI:
    通用網(wǎng)關接口(Common Gateway Interface/CGI)是一種重要的互聯(lián)網(wǎng)技術,可以讓一個客戶端,從網(wǎng)頁瀏覽器向執(zhí)行在網(wǎng)絡服務器上的程序請求數(shù)據(jù)。CGI描述了服務器和請求處理程序之間傳輸數(shù)據(jù)的一種標準。
  • FastCGI:
    快速通用網(wǎng)關接口(Fast Common Gateway Interface/FastCGI)是一種讓交互程序與Web服務器通信的協(xié)議。FastCGI是早期通用網(wǎng)關接口(CGI)的增強版本。
    FastCGI致力于減少網(wǎng)頁服務器與CGI程序之間互動的開銷,從而使服務器可以同時處理更多的網(wǎng)頁請求。
  • 結論:CGI跟FastCGI都是協(xié)議、有別于CGI程序、FastCGI程序

2. 什么是PHP-CGI、PHP-FPM

  • PHP-CGI:
    PHP-CGI是PHP自帶的FastCGI管理器,也就是專門給PHP使用的FastCGI管理器
    PHP-CGI的不足:
    1、php-cgi變更php.ini配置后需重啟php-cgi才能讓新的php-ini生效,不可以平滑重啟。
    2、直接殺死php-cgi進程,php就不能運行了。(PHP-FPM和Spawn-FCGI就沒有這個問題,守護進程會平滑從新生成新的子進程。)

  • PHP-FPM:
    因為PHP-CGI的不足,所以PHP-FPM誕生了,它解決了PHP-CGI的不足,同時還具備更多的功能,還表現(xiàn)在其他方面更表現(xiàn)強勁。
    PHP-FPM 是對于 FastCGI 協(xié)議的具體實現(xiàn),他負責管理一個進程池,來處理來自Web服務器的請求生成新的子進程。

3. 圖解

image.png
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容