您好,登錄后才能下訂單哦!
CGI(Common Gateway Interface,公共網關接口)是一種標準協議,這種協議可以為一個應用程序和一個 Web 瀏覽器之間進行交互提供通信支持。CGI 最早出現于 1993 年,所有版本的 IIS 都為 CGI 提供了支持。在 IIS 上運行 CGI 時,CGI 處理請求的方式存在一些問題。對于 CGI 應用程序處理的每個新請求,IIS 都必須創建一個新的進程,待進程執行結束后,再關閉該進程。IIS 可以迅速地處理請求,但是,啟動和停止進程的開銷可能會成為性能瓶頸,這就是在 IIS 上運行 CGI 時,CGI 處理請求方式存在的問題。因此,IIS 引入了 FastCGI。 FastCGI能夠部分解決上述性能瓶頸問題。
FastCGI (C:\Windows\System32\inetsrv\iisfcgi.dll)是一種新版本的 CGI,能滿足大多數原有的 CGI 規范。然而,FastCGI 并沒有在請求處理完畢時關閉一個進程,而是令這個進程繼續運行,并處理其他請求。與 CGI 類似,FastCGI 也是單線程的,但是與 CGI 相比,當使用 FastCGI 時,服務器可以處理更多的請求,這是因為,進程仍然處于打開的狀態。在 IIS 7.0 中,FastCGI 是使用內置的 API 實現的,并且被實現為一個本機的模塊。
為什么要使用 FastCGI 呢?這是因為目前仍然存在大量的 PHP 應用程序,這些應用程序得到了廣泛的應用。盡管這些應用程序通常使用了 CGI 版本或 ISAPI 版本的 PHP,但是,FastCGI 能夠進一步提高這些應用程序的運行性能。
因為 FastCGI 是一種單線程的應用程序,因此必須啟動多個線程來處理多個請求。這些進程可以匯集到一個進程池,組成不同的進程組,這樣便可以統一管理這些進程組。一個進程組的屬性可以是托管的,舉例來說,一個進程組中的進程數量,以及一個進程在回收之前可以處理的請求數量等,都屬于進程組的屬性,并且可以受托管。一個進程組中可以包含多個進程,FastCGI 也可以同時運行多個進程組,并且每個進程組都可以擁有自己的設置。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。