小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

CGI/FastCGI/mod_php工作原理

 Ralf_Jones 2008-06-18
先了解一下普通cgi的工作流程:
web server收到用戶請求,并把請求提交給cgi程序,cgi程序根據(jù)請求提交的參數(shù)作相應(yīng)處理,然后輸出標準的html語句返回給web server,web server再返回給客戶端,這就是普通cgi的工作原理。

從上面看,cgi所要實現(xiàn)的不過是動態(tài)網(wǎng)頁而已,這種處理方式的特點就是每接到一個請求,web server都要fork出一個單獨的cgi程序的進程來處理,這種方式的好處是把web server和具體的程序處理獨立開來,結(jié)構(gòu)清晰,可控性強,同時缺點就是如果在高訪問需求的情況下,cgi的進程fork就會成為很大的服務(wù)器負擔,想象一下數(shù)百個并發(fā)請求導(dǎo)致服務(wù)器fork出數(shù)百個進程就明白了。這也是為什么cgi一直背負性能低下,高資源消耗的惡名的原因。

相應(yīng)的有問題就有解決方案,目前流行的方案就是使用模塊設(shè)計,基本上目前的web server都有相應(yīng)的模塊機制來擴充它的功能,只要按照其設(shè)計規(guī)范設(shè)計出來的模塊,就能插入到web server自身的進程處理,因此性能有很大改觀,例如IIS的isapi,apache的dso。但是,這種方法也不是沒有缺點的,例如對于不同的web server,要按照不同標準開發(fā),無法做到webserver無關(guān)性;例如這將輸入驗證的工作轉(zhuǎn)交給了web server,沒辦法自由處理;例如一旦出現(xiàn)問題將影響整個web server處理流程;例如插入web server進程導(dǎo)致的無法以多用戶標示運行,無法處理虛擬主機權(quán)限等。

所幸我們還有另外的選擇,這就是fastcgi。fastcgi是基于cgi架構(gòu)的擴展,他的核心思想就是在web server和具體cgi程序之間建立一個智能的可持續(xù)的中間層,統(tǒng)管cgi程序的運行,這樣web server只需要將請求提交給這個層,這個層再派生出幾個可復(fù)用的cgi程序?qū)嵗缓笤侔颜埱蠓职l(fā)給這些實例,這些實例是可控的,可持續(xù),可復(fù)用的,因此一方面避免了進程反復(fù)fork,另一方面又可以通過中間層的控制和探測機制來監(jiān)視這些實例的運行情況,根據(jù)不同的狀況fork或者回收實例,達到靈活性和穩(wěn)定性兼得的目的。


本人曾經(jīng)做過測試,使用cgi方式運行php效率最差,mod_php方式性能非常不錯,幾乎是cgi方式的50倍,但是無法保證虛擬主機站點的安全性隔離,而fastcgi性能則基本和mod_php相當,這還是在使用了suexec切換虛擬主機站點運行用戶的情況下的結(jié)果。
 
參考:mod_fcgid

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多