【優(yōu)點(diǎn)】
1)從穩(wěn)定性上看,F(xiàn)astCGI是以獨(dú)立的進(jìn)程池來運(yùn)行CGI,單獨(dú)一個(gè)進(jìn)程死掉,系統(tǒng)可以很輕易的丟棄,然后重新分配新的進(jìn)程來運(yùn)行邏輯;
2)從安全性上看,F(xiàn)astCGI支持分布式運(yùn)算。FastCGI和宿主的Server完全獨(dú)立,F(xiàn)astCGI怎么down也不會(huì)把Server搞垮;
3)從性能上看,F(xiàn)astCGI把動(dòng)態(tài)邏輯的處理從Server中分離出來,大負(fù)荷的IO處理還是留給宿主Server,這樣宿主Server可以一心一意作IO,對(duì)于一個(gè)普通的動(dòng)態(tài)網(wǎng)頁(yè)來說, 邏輯處理可能只有一小部分,大量的是圖片等靜態(tài)。
【缺點(diǎn)】
說完了好處,也來說說缺點(diǎn)。從我的實(shí)際使用來看,用FastCGI模式更適合生產(chǎn)環(huán)境的服務(wù)器。但對(duì)于開發(fā)用機(jī)器來說就不太合適。因?yàn)楫?dāng)使用 Zend Studio調(diào)試程序時(shí),由于 FastCGI會(huì)認(rèn)為 PHP進(jìn)程超時(shí),從而在頁(yè)面返回 500錯(cuò)誤。這一點(diǎn)讓人非常惱火,所以我在開發(fā)機(jī)器上還是換回了 ISAPI模式。對(duì)某些服務(wù)器的新版本支持不好,對(duì)分布式負(fù)載均衡沒要求的模塊化安裝是否是更好的選擇。目前的FastCGI和Server溝通還不夠智能,一個(gè)FastCGI進(jìn)程如果執(zhí)行時(shí)間過長(zhǎng)會(huì)被當(dāng)成是死進(jìn)程殺掉重起,這樣在處理長(zhǎng)時(shí)間任務(wù)的時(shí)候很麻煩,這樣做也使得FastCGI無(wú)法允許聯(lián)機(jī)調(diào)試。因?yàn)槭嵌噙M(jìn)程,所以比CGI多線程消耗更多的服務(wù)器內(nèi)存,PHP-CGI解釋器每進(jìn)程消耗7至25兆內(nèi)存,將這個(gè)數(shù)字乘以50或100就是很大的內(nèi)存數(shù)。