明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

生根于自由的土壤-FastCGI之一

[摘要]Linux作為自由軟件的代表,給IT行業(yè)帶來了無限的發(fā)展空間。 Linux的透明性,無論給開發(fā)人員還是應(yīng)用人員都有一個(gè)充分發(fā)揮的余地,在以 Linux系統(tǒng)為作業(yè)和平臺上,更多的功能正在被不斷地開發(fā)出來。像Server Push、FastCGI、EPERL、PHP3等許多的新功能,正是在Linux這...
Linux作為自由軟件的代表,給IT行業(yè)帶來了無限的發(fā)展空間。 Linux的透明性,無論給開發(fā)人員還是應(yīng)用人員都有一個(gè)充分發(fā)揮的余地,在以 Linux系統(tǒng)為作業(yè)和平臺上,更多的功能正在被不斷地開發(fā)出來。像Server Push、FastCGI、EPERL、PHP3等許多的新功能,正是在Linux這樣自由的土壤中才得以充分的發(fā)展。
一個(gè)網(wǎng)站的性能,主要表現(xiàn)在以下幾個(gè)方面:系統(tǒng)響應(yīng)時(shí)間、處理時(shí)間、用戶等待時(shí)間和系統(tǒng)的輸出負(fù)載,如果考慮經(jīng)濟(jì)因素還要加上技術(shù)成本。要提高網(wǎng)站的性能,在不改變硬件和網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上,那么技術(shù)內(nèi)涵就集中在優(yōu)秀的程序上。目前來說,Server Push(推技術(shù))和FastCGI兩項(xiàng)新技術(shù)在完全不增加成本的基礎(chǔ)上可以使你的網(wǎng)站達(dá)到最佳的性能。本文將詳細(xì)介紹FastCGI技術(shù)。


什么是FastCGI


  要說明一點(diǎn),如果要使用FastCGI,你應(yīng)該在以Linux為作業(yè)系統(tǒng)的Apache服務(wù)上編譯FastCGI模塊,大家可以到www.fastcgi.com去下載最新的模塊,下載的這個(gè)模塊中會(huì)有詳細(xì)的編譯說明。

  多年以來,CGI已經(jīng)成了服務(wù)器端應(yīng)用程序開發(fā)的事實(shí)標(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ā)的重頭戲。隨著時(shí)間的推移,很多服務(wù)器在沉重的CGI負(fù)擔(dān)下已經(jīng)力不從心了。

  還是讓我們來看看CGI是如何工作的吧:當(dāng)客戶機(jī)對服務(wù)器請求CGI應(yīng)用程序時(shí),服務(wù)器建立一個(gè)進(jìn)程來處理用戶請求,完成后結(jié)束進(jìn)程。當(dāng)負(fù)載很低時(shí),CGI能很好地工作,但是一個(gè)大型的站點(diǎn)上的各種不同類型的請求隨時(shí)發(fā)生,在客戶請求的負(fù)載很高時(shí),服務(wù)器進(jìn)程的設(shè)置和初始化所用的時(shí)間就成為網(wǎng)站性能的瓶頸。特別是像和數(shù)據(jù)庫這樣的應(yīng)用程序連接時(shí),初始化所用的時(shí)間較長。

  當(dāng) FastCGI技術(shù)脫穎而出的時(shí)候,這個(gè)問題就得到了很好的解決。 FastCGI始終處于活動(dòng)狀態(tài)為來自服務(wù)器的請求提供服務(wù)。FastCGI是在服務(wù)器上運(yùn)行一個(gè)“活動(dòng)的程序"來處理服務(wù)器對應(yīng)用程序的請求。FastCGI始終處于活動(dòng)狀態(tài),這正是它的優(yōu)點(diǎn),它在處理請求時(shí)沒有啟動(dòng)新進(jìn)程和對應(yīng)用程序初始化的開銷。服務(wù)器端可以用PERL、C、C++或JAVA等語言來編寫一個(gè)基于 FastCGI的應(yīng)用程序,來不斷地處理服務(wù)器對應(yīng)用程序的請求。特別是對于Server Push這樣的連接方式,服務(wù)器要不間斷地響應(yīng)用戶請求,就要不斷地讓應(yīng)用程序運(yùn)行來支持服務(wù)器對應(yīng)用程序的請求。