程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php 中 FastCGI與cgi的關系,何為fastcgi,cgifastcgi

php 中 FastCGI與cgi的關系,何為fastcgi,cgifastcgi

編輯:關於PHP編程

php 中 FastCGI與cgi的關系,何為fastcgi,cgifastcgi


FastCGI是語言無關的、可伸縮架構的CGI開放擴展,其主要行為是將CGI解釋器進程保持 在內存中並因此獲得較高的性能。眾所周知,CGI解釋器的反復加載是CGI性能低下的主要原因, 如果CGI解釋器保持在內存中並接受FastCGI進程管理器調度,則可以提供良好的性能、伸縮性、 Fail-Over 特性等。
FastCGI的工作原理是:
(1) FastCGI進程管理器自身初始化,啟動多個CGI解釋器進程(多個php-cgi進程)並等 待來自Web Server的連接。在本文中,采用PHP-FPM進程管理器啟動多個php-cgi FastCGI進 程。啟動php-cgi FastCGI進程時,可以配置以TCP和UNIX套接字兩種方式啟動。
(2) 當客戶端請求到達Web服務器(Nginx)時,Web服務器將請求采用TCP協議或UNIX 套接字方式轉發到FastCGI主進程,FastCGI主進程選擇並連接到一個CGI解釋器(子進程)。 Web服務器將CGI環境變量和標准輸入發送到FastCGI子進程php-cgi。
(3)
FastCGI子進程完成處理後將標准輸出和錯誤信息從同一連接返回Web服務器(Nginx).
當FastCGI子進程關閉連接時,請求便告知處理完成。FastCGI子進程接著等待並處理來自FastCGI 進程管理器的下一個連接。而在一般的普通CGI模式中,php-cgi在此便退出了。
所以,你可以想象普通的CGI模式有多慢。每一個Web請求PHP都必須重新解析php.ini、 重新載入全部擴展並重新初始化全部數據結構。使用FastCGI,所有這些都只在進程啟動時發生 一次。一個額外的好處是,持續數據庫連接(Persistent database connection)可以工作。
PHP FastCGI 的優點:
(1) PHP腳本運行速度更快。PHP解釋程序被載入內存而不用每次需要時從存儲器讀取, 此舉極大提升了依靠腳本運行站點的性能。
(2) 須要使用的系統資源更少。由於服務器不用在每次需要時都載入PHP解釋程序,你可 以將站點的傳輸速度提升很多而不必增加CPU負擔。
(3) 不需要對現有的代碼作任何改變。運行在Apache+PHP上的程序,無須修改即可適用 於 PHP 的 FastCGI。

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