nginx 和php-fpm關係

php-fpm 就是fastCGI進程管理器
一、Web Server啓動時載入FastCGI 進程管理器(IIS ISAPI或Apache Module)
二、FastCGI進程管理器自身初始化,啓動多個CGI 解釋器進程(可見多個 php-cgi)並等待來自Web Server的鏈接。
三、當客戶端請求到達Web Server時,FastCGI進程管理器選擇並鏈接到一個CGI解釋器。Web server將CGI 環境變量和標準輸入發送到FastCGI子進程php-cgi。
四、FastCGI子進程完成處理後將標準輸出和錯誤信息從同一鏈接返回Web Server。當FastCGI子進程關閉鏈接時,請求便告處理完成。FastCGI子進程接着等待並處理來自FastCGI 進程管理器(運行在Web Server中)的下一個鏈接。 在CGI模式中, php-cgi在此便退出了。
在上述狀況中,你能夠想象CGI一般有多慢。每個Web請求PHP都必須從新解析php.ini、從新載入所有擴展並重初始化所有數據結構。使用FastCGI,全部這些都只在進程啓動時發生一次。一個額外的好處是,持續數據庫鏈接(Persistent database connection)能夠工做。

重點:每個子進程CGI中, 每一個進程內部都嵌入了一個PHP解釋器php

工做流:請求->nginx->php-fpm->fastcgi(worker)nginx

轉載於知乎https://www.zhihu.com/question/40658804?sort=created數據庫

相關文章
相關標籤/搜索