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