nginx 和php-fpm關系


php-fpm 就是fastCGI進程管理器
1、Web Server啟動時載入FastCGI 進程管理器(IIS ISAPI或Apache Module)
2、FastCGI進程管理器自身初始化,啟動多個CGI 解釋器進程(可見多個 php-cgi)並等待來自Web Server的連接。
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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM