程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP基礎知識 >> Fastcgi優缺點總結

Fastcgi優缺點總結

編輯:PHP基礎知識
 

如果想了解 FastCGI 的技術原理就要了解何為”短生存期應用程序”,何為”長生存期應用程序”。先從 CGI 技術開刀,以下是 CGI 技術的理論:每次當客戶請求一個 CGI 的時候,Web 服務器就請求操作系統生成一個新的 CGI 進程。當 CGI 滿足要求後,服務器就殺死這個進程。服務器對客戶端的每個請求都要重復這樣的過程。而 FastCGI 技術的理論為:FastCGI 程序一旦產生後,他可以持續工作,足夠滿足客戶的請求直到被明確的終止。如果你希望通過協同處理來提高程序的性能,你可以請求 Web 服務器運行多個 FastCGI應用程序的副本。CGI 就是所謂的短生存期應用程序,FastCGI 就是所謂的長生存期應用程序。由於 FastCGI 程序並不需要不斷的產生新進程,可以大大降低服務器的壓力。並且產生較高的應用效率。

與CGI相比FastCgi具有以下特點:
1.打破傳統頁面處理技術
傳統的頁面處理技術,程序必須與 Web 服務器或 Application 服務器處於同一台服務器中。這種歷史已經早 N 年被 FastCGI 技術所打破,FastCGI 技術的應用程序可以被安裝在服務器群中的任何一台服務器,而通過 TCP/IP 協議與 Web 服務器通訊,這樣做既適合開發大型分布式 Web 群,也適合高效數據庫控制。
2.明確的請求模式
CGI 技術沒有一個明確的角色,在 FastCGI 程序中,程序被賦予明確的角色(響應器角色、認證器角色、過濾器角色)。
3.合理的程序結構
起初,真的很討厭 FastCGI 應用程序的結構要求。沒關系,您經過一段時間編寫後就會喜歡這種結構,只有這種完全規范的結構才能讓您的程序更有效率。

然後是Fastcgi的優缺點。
Fastcgi的優點:
1、高穩定性、fastcgi是以獨立的進程池運行來cgi,單獨一個進程死掉,系統可以很輕易的丟棄,然後重新分配新的進程來運行邏輯。
2、良好的安全性、 fastcgi和宿主的server完全獨立, fastcgi怎麼down也不會把server搞垮。
2、高性能、 fastcgi把動態邏輯的處理從server中分離出來, 大負荷的IO處理還是留給宿主server, 這樣宿主server可以一心一意作IO,對於一個普通的動態網頁來說, 邏輯處理可能只有一小部分, 大量的圖片等靜態IO處理完全不需要邏輯程序的參與。
3、良好的擴展性、 fastcgi是一個中立的技術標准, 完全可以支持任何語言寫的處理程序。

Fastcgi的缺點:
1、對某些服務器的新版本支持不好,對分布式負載均衡沒要求的模塊化安裝是否是更好的選擇。
2、目前的fastcgi和server溝通還不夠智能,一個fastcgi進程如果執行時間過長會被當成是死進程殺掉重起,這樣在處理長時間任務的時候很麻煩.這樣做也使得fastcgi無法允許聯機調試。
3、SCGI等類似技術的都可以替換fastcgi, SCGI在python中很成功,功能完備,目前SCGI也開始支持rails了隨著rails的流行,一個獨立的mod_rails是可能出現的,而且 ruby自身的webserver也開始湧現,以後極有可能自己搞一套東西連接主流的webserver.fastcgi設計的時候是想作common gatewayinterface(cgi)的,但是這個目標的現在看來已經不適合了。

模塊化安裝的優缺點暫時還沒找到。

 

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved