1 回答

TA貢獻(xiàn)1946條經(jīng)驗 獲得超3個贊
Nginx 結(jié)合FastCGI 程序可以搭建高性能web service程序。
(a)Nginx不支持對外部程序的直接調(diào)用或者解析,所有的外部程序(包括PHP)必須通過FastCGI接口來調(diào)用。FastCGI接口在Linux下是socket(這個socket可以是文件socket,也可以是ip socket)。為了調(diào)用CGI程序,還需要一個FastCGI的wrapper(wrapper可以理解為用于啟動另一個程序的程序),這個wrapper綁定在某個固定socket上,如端口或者文件socket。
(b)當(dāng)Nginx將CGI請求發(fā)送給這個socket的時候,通過FastCGI接口,wrapper接收到請求,然后派生出一個新的線程,這個線程調(diào)用解釋器或者外部程序處理腳本并讀取返回數(shù)據(jù);接著,wrapper再將返回的數(shù)據(jù)通過FastCGI接口,沿著固定的socket傳遞給Nginx;最后,Nginx將返回的數(shù)據(jù)發(fā)送給客戶端。這就是Nginx+FastCGI的整個運作過程,如圖1所示。
FastCGI接口方式在腳本解析服務(wù)器(CGI應(yīng)用程序服務(wù)器)上啟動一個或者多個守護(hù)進(jìn)程對動態(tài)腳本進(jìn)行解析,這些進(jìn)程就是FastCGI進(jìn)程管理器,或者稱為FastCGI引擎。 spawn-fcgi與PHP-FPM都是FastCGI進(jìn)程管理器(支持PHP和C/C++)。
- 1 回答
- 0 關(guān)注
- 1815 瀏覽
添加回答
舉報