Fastcgi是什么
來源:易賢網 閱讀:884 次 日期:2015-03-23 15:52:32
溫馨提示:易賢網小編為您整理了“Fastcgi是什么”,方便廣大網友查閱!

一、FastCGI是什么?

FastCGI是語言無關的、可伸縮架構的CGI開放擴展,其主要 行為是將CGI解釋器進程保持在內存中并因此獲得較高的性能。眾所周知,CGI解釋器的反復加載是CGI性能低下的主要原因,如果CGI解釋器保持在內存 中并接受FastCGI進程管理器調度,則可以提供良好的性能、伸縮性、Fail-Over特性等等。

FastCGI的官方站點在

FastCGI的工作原理是:

1、Web Server 啟動時載入FastCGI進程管理器(IIS ISAPI或Apache Module);

2、FastCGI進程管理器自身初始化,啟動多個CGI解釋器進程 (在任務管理器中可見多個php-cgi.exe)并等待來自Web Server的連接。

3、當客戶端請求到達Web Server時,F(xiàn)astCGI進程管理器選擇并連接到一個CGI解釋器。Web server將CGI環(huán)境變量和標準輸入發(fā)送到FastCGI子進程php-cgi.exe。

4、FastCGI子進程完成處理后將標準輸出和錯誤信息從同一連接返回Web Server。當FastCGI子進程關閉連接時,請求便告處理完成。FastCGI子進程接著等待并處理來自FastCGI進程管理器(運行在 WebServer中)的下一個連接。 在正常的CGI模式中,php-cgi.exe在此便退出了。

在上述情況中,你可以想象 CGI通常有多慢。每一個Web請求PHP都必須重新解析php.ini、重新載入全部dll擴展并重初始化全部數據結構。使用FastCGI,所有這些 都只在進程啟動時發(fā)生一次。一個額外的好處是,持續(xù)數據庫連接(Persistent database connection)可以工作。

二、為什么要使用FastCGI,而不是多線程CGI解釋器?

這可能出于多方面的考慮,例如:

1、你無論如何也不能在windows平臺上穩(wěn)定的使用多線程CGI解釋器,無論是IIS ISAPI方式還是APACHE Module方式,它們總是運行一段時間就崩潰了。奇怪么?但是確實存在這樣的情況!

當然,也有很多時候你能夠穩(wěn)定的使用多線程CGI解釋器,但是,你有可能發(fā)現(xiàn)網頁有時候會出現(xiàn)錯誤,無論如何也找不到原因,而換用FastCGI方式時 這種錯誤的概率會大大的降低。我也不清楚這是為什么,我想獨立地址空間的CGI解釋器可能終究比共享地址空間的形式來得穩(wěn)定一點點。

2、性 能!性能?可能么,難道FastCGI比多線程CGI解釋器更快?但有時候確實是這樣,只有測試一下你的網站,才能最后下結論。原因嘛,我覺得很難講,但 有資料說在Zend WinEnabler的時代,Zend原來也是建議在Windows平臺下使用FastCGI而不是IIS ISAPI或Apache Module,不過現(xiàn)在Zend已經不做這個產品了。

三、不使用FastCGI的理由

1、多進程比多線程消耗更多的服務器內存,php-cgi.exe解釋器每進程消耗7至25兆內存,將這個數字乘以50或100試試。

2、性能。確實有時候多線程CGI解釋器更快,呵呵,而且有時候,它也很穩(wěn)定。

更多信息請查看IT技術專欄

更多信息請查看技術文章
易賢網手機網站地址:Fastcgi是什么
關于我們 | 聯(lián)系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權所有:易賢網