php-fpm 就是fastCGI進程管理器
1、Web Server啟動時載入FastCGI
進程管理器(IIS ISAPI或Apache Module)
3、當客戶端請求到達Web Server時,FastCGI進程管理器選擇並連接到一個CGI解釋器。Web server將CGI
環境變量和標准輸入發送到FastCGI子進程php-cgi。
4、FastCGI子進程完成處理后將標准輸出和錯誤信息從同一連接返回Web Server。當FastCGI子進程關閉連接時,請求便告處理完成。FastCGI子進程接着等待並處理來自FastCGI
進程管理器(運行在Web Server中)的下一個連接。 在CGI模式中,
php-cgi在此便退出了。
在上述情況中,你可以想象CGI通常有多慢。每一個Web請求PHP都必須重新解析php.ini、重新載入全部擴展並重初始化全部數據結構。使用FastCGI,所有這些都只在進程啟動時發生一次。一個額外的好處是,持續數據庫連接(Persistent database connection)可以工作。
重點:每一個子進程CGI中, 每個進程內部都嵌入了一個PHP解釋器
工作流:請求->nginx->php-fpm->fastcgi(worker)
轉載於知乎https://www.zhihu.com/question/40658804?sort=created