溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

CGI 和 FastCGI

發(fā)布時間:2020-08-10 22:26:06 來源:網(wǎng)絡(luò) 閱讀:412 作者:rgyu567 欄目:系統(tǒng)運(yùn)維

CGI(Common Gateway Interface,公共網(wǎng)關(guān)接口)是一種標(biāo)準(zhǔn)協(xié)議,這種協(xié)議可以為一個應(yīng)用程序和一個 Web 瀏覽器之間進(jìn)行交互提供通信支持。CGI 最早出現(xiàn)于 1993 年,所有版本的 IIS 都為 CGI 提供了支持。在 IIS 上運(yùn)行 CGI 時,CGI 處理請求的方式存在一些問題。對于 CGI 應(yīng)用程序處理的每個新請求,IIS 都必須創(chuàng)建一個新的進(jìn)程,待進(jìn)程執(zhí)行結(jié)束后,再關(guān)閉該進(jìn)程。IIS 可以迅速地處理請求,但是,啟動和停止進(jìn)程的開銷可能會成為性能瓶頸,這就是在 IIS 上運(yùn)行 CGI 時,CGI 處理請求方式存在的問題。因此,IIS 引入了 FastCGI。 FastCGI能夠部分解決上述性能瓶頸問題。

FastCGI (C:\Windows\System32\inetsrv\iisfcgi.dll)是一種新版本的 CGI,能滿足大多數(shù)原有的 CGI 規(guī)范。然而,F(xiàn)astCGI 并沒有在請求處理完畢時關(guān)閉一個進(jìn)程,而是令這個進(jìn)程繼續(xù)運(yùn)行,并處理其他請求。與 CGI 類似,F(xiàn)astCGI 也是單線程的,但是與 CGI 相比,當(dāng)使用 FastCGI 時,服務(wù)器可以處理更多的請求,這是因為,進(jìn)程仍然處于打開的狀態(tài)。在 IIS 7.0 中,F(xiàn)astCGI 是使用內(nèi)置的 API 實現(xiàn)的,并且被實現(xiàn)為一個本機(jī)的模塊。

為什么要使用 FastCGI 呢?這是因為目前仍然存在大量的 PHP 應(yīng)用程序,這些應(yīng)用程序得到了廣泛的應(yīng)用。盡管這些應(yīng)用程序通常使用了 CGI 版本或 ISAPI 版本的 PHP,但是,F(xiàn)astCGI 能夠進(jìn)一步提高這些應(yīng)用程序的運(yùn)行性能。

因為 FastCGI 是一種單線程的應(yīng)用程序,因此必須啟動多個線程來處理多個請求。這些進(jìn)程可以匯集到一個進(jìn)程池,組成不同的進(jìn)程組,這樣便可以統(tǒng)一管理這些進(jìn)程組。一個進(jìn)程組的屬性可以是托管的,舉例來說,一個進(jìn)程組中的進(jìn)程數(shù)量,以及一個進(jìn)程在回收之前可以處理的請求數(shù)量等,都屬于進(jìn)程組的屬性,并且可以受托管。一個進(jìn)程組中可以包含多個進(jìn)程,F(xiàn)astCGI 也可以同時運(yùn)行多個進(jìn)程組,并且每個進(jìn)程組都可以擁有自己的設(shè)置。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI