FastCGI(Fast Common Gateway Interface,快速通用網關介面),是一個可伸縮的、高速地在HTTP server和動態腳本語言間通訊的介面(或者說是協定)。
Nginx FastCGI運作原理 (建議學習:PHP影片教學)
Nginx不支援對外部程式的直接呼叫或解析,所有的程式(包括PHP)必須透過FastCGI、uwsig介面呼叫。
FastCGI介面呼叫在Linux下的socket(unix sockt或ip:port 形式)。為了呼叫CGI程序,還需要一個FastCGI的wrapper,wrapper綁定在某個固定的socket上,如埠或檔案socket。
當Nginx將CGI請求發送給這個socket時,透過FastCGI接口,wrapper接納到請求,然後派生出一個新的線程,這個線程調用解釋器或外部程式處理腳本,並讀取返回數據;接著wrapper再將回傳的資料通過FastCGI接口,沿著固定的socket傳遞給Nginx。
最後Nginx將傳回的資料傳送給客戶端。
PHP-FPM
FastCGI介面方式在腳本解析伺服器上啟動一個或多個守護程式對動態腳本進行解析,這些行程就是FastCGI進程管理器,或者FastCGI引擎。
PHP-FPM就是支援PHP的FastCGI引擎。 PHP-FPM是一個第三方的FastCGI進程管理器,作為PHP的一個補丁進行開發的,因此在安裝的時候需要和PHP源碼一起編譯,也就是說PHP-FPM被編譯到PHP核心。
FastCGI 的主要優點是把動態語言和HTTP Server 分離開來,所以Nginx 與PHP/PHP-FPM 經常被部署在不同的伺服器上,以分擔前端Nginx 伺服器的壓力,使Nginx專一處理靜態請求和轉送動態請求,而PHP/PHP-FPM 伺服器專一解析PHP 動態請求。
以上是nginx支援php嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!