生根于自由的土壤-FastCGI之一
發(fā)表時間:2024-02-08 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]Linux作為自由軟件的代表,給IT行業(yè)帶來了無限的發(fā)展空間。 Linux的透明性,無論給開發(fā)人員還是應(yīng)用人員都有一個充分發(fā)揮的余地,在以 Linux系統(tǒng)為作業(yè)和平臺上,更多的功能正在被不斷地開發(fā)出來。像Server Push、FastCGI、EPERL、PHP3等許多的新功能,正是在Linux這...
Linux作為自由軟件的代表,給IT行業(yè)帶來了無限的發(fā)展空間。 Linux的透明性,無論給開發(fā)人員還是應(yīng)用人員都有一個充分發(fā)揮的余地,在以 Linux系統(tǒng)為作業(yè)和平臺上,更多的功能正在被不斷地開發(fā)出來。像Server Push、FastCGI、EPERL、PHP3等許多的新功能,正是在Linux這樣自由的土壤中才得以充分的發(fā)展。
一個網(wǎng)站的性能,主要表現(xiàn)在以下幾個方面:系統(tǒng)響應(yīng)時間、處理時間、用戶等待時間和系統(tǒng)的輸出負載,如果考慮經(jīng)濟因素還要加上技術(shù)成本。要提高網(wǎng)站的性能,在不改變硬件和網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上,那么技術(shù)內(nèi)涵就集中在優(yōu)秀的程序上。目前來說,Server Push(推技術(shù))和FastCGI兩項新技術(shù)在完全不增加成本的基礎(chǔ)上可以使你的網(wǎng)站達到最佳的性能。本文將詳細介紹FastCGI技術(shù)。
什么是FastCGI 要說明一點,如果要使用FastCGI,你應(yīng)該在以Linux為作業(yè)系統(tǒng)的Apache服務(wù)上編譯FastCGI模塊,大家可以到www.fastcgi.com去下載最新的模塊,下載的這個模塊中會有詳細的編譯說明。
多年以來,CGI已經(jīng)成了服務(wù)器端應(yīng)用程序開發(fā)的事實標(biāo)準(zhǔn),雖然ASP技術(shù)的出現(xiàn)使服務(wù)器端應(yīng)用程序開發(fā)更方便,但是ASP的局限性使目前仍以Unix/Linux為作業(yè)系統(tǒng)并使用Apache為服務(wù)程序的絕大多數(shù)的服務(wù)器拒其于門外,CGI仍然唱著服務(wù)器端應(yīng)用程序開發(fā)的重頭戲。隨著時間的推移,很多服務(wù)器在沉重的CGI負擔(dān)下已經(jīng)力不從心了。
還是讓我們來看看CGI是如何工作的吧:當(dāng)客戶機對服務(wù)器請求CGI應(yīng)用程序時,服務(wù)器建立一個進程來處理用戶請求,完成后結(jié)束進程。當(dāng)負載很低時,CGI能很好地工作,但是一個大型的站點上的各種不同類型的請求隨時發(fā)生,在客戶請求的負載很高時,服務(wù)器進程的設(shè)置和初始化所用的時間就成為網(wǎng)站性能的瓶頸。特別是像和數(shù)據(jù)庫這樣的應(yīng)用程序連接時,初始化所用的時間較長。
當(dāng) FastCGI技術(shù)脫穎而出的時候,這個問題就得到了很好的解決。 FastCGI始終處于活動狀態(tài)為來自服務(wù)器的請求提供服務(wù)。FastCGI是在服務(wù)器上運行一個“活動的程序"來處理服務(wù)器對應(yīng)用程序的請求。FastCGI始終處于活動狀態(tài),這正是它的優(yōu)點,它在處理請求時沒有啟動新進程和對應(yīng)用程序初始化的開銷。服務(wù)器端可以用PERL、C、C++或JAVA等語言來編寫一個基于 FastCGI的應(yīng)用程序,來不斷地處理服務(wù)器對應(yīng)用程序的請求。特別是對于Server Push這樣的連接方式,服務(wù)器要不間斷地響應(yīng)用戶請求,就要不斷地讓應(yīng)用程序運行來支持服務(wù)器對應(yīng)用程序的請求。