国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

什么是CGI、FastCGI、PHP-CGI、PHP-FPM

draveness / 2627人閱讀

摘要:簡單來說只是一個協議而已,是實現的程序,是管理的一個管理器而已。接下來解析器會解析文件,初始化執行環境,然后處理請求,再以規定規定的格式返回處理后的結果,退出進程。好了,是個協議,跟進程什么的沒關系。那又是什么呢是用來提高程序性能的。

簡單來說 CGI、 FastCGI只是一個協議而已, php-cgi 是實現cgi的程序, php-fpm是管理php-cgi的一個管理器而已。

CGI全稱是“公共網關接口”(Common Gateway Interface),HTTP服務器與你的或其它機器上的程序進行“交談”的一種工具,其程序須運行在網絡服務器上。

首先,CGI是干嘛的?CGI是為了保證web server傳遞過來的數據是標準格式的,方便CGI 程序的編寫者。
web server(比如說nginx)只是內容的分發者。比如,如果請求/index.html,那么web server會去文件系統中找到這個文件,發送給瀏覽器,這里分發的是靜態數據。好了,如果現在請求的是/index.php,根據配置文件,nginx知道這個不是靜態文件,需要去找PHP解析器來處理,那么他會把這個請求簡單處理后交給PHP解析器。Nginx會傳哪些數據給PHP解析器呢?url要有吧,查詢字符串也得有吧,POST數據也要有,HTTP header不能少吧,好的,CGI 就是規定要傳哪些數據、以什么樣的格式傳遞給后方處理這個請求的協議。仔細想想,你在PHP代碼中使用的用戶數據從哪里來的。

當web server收到/index.php這個請求后,會啟動對應的CGI 程序,這里就是PHP的解析器。接下來PHP解析器會解析php.ini文件,初始化執行環境,然后處理請求,再以規定CGI規定的格式返回處理后的結果,退出進程。web server再把結果返回給瀏覽器。

好了,CGI是個協議,跟進程什么的沒關系。那fastcgi又是什么呢?Fastcgi是用來提高CGI程序性能的。

FastCGI是從CGI發展改進而來的。傳統CGI接口方式的主要缺點是性能很差,因為每次HTTP服務器遇到動態程序時都需要重新啟動腳本解析器來執行解析,然后結果被返回給HTTP服務器。

提高性能,那么CGI 程序的性能問題在哪呢?"PHP解析器會解析php.ini文件,初始化執行環境",就是這里了。標準的 CGI 對每個請求都會執行這些步驟(不閑累啊!啟動進程很累的說!),所以處理每個時間的時間會比較長。這明顯不合理嘛!那么Fastcgi是怎么做的呢?首先,Fastcgi會先啟一個master,解析配置文件,初始化執行環境,然后再啟動多個worker。當請求過來時,master會傳遞給一個worker,然后立即可以接受下一個請求。這樣就避免了重復的勞動,效率自然是高。而且當worker不夠用時,master可以根據配置預先啟動幾個worker等著;當然空閑worker太多時,也會停掉一些,這樣就提高了性能,也節約了資源。這就是fastcgi的對進程的管理。

那PHP-FPM又是什么呢?是一個實現了Fastcgi 的程序,被PHP官方收了。
大家都知道,PHP的解釋器是php-cgi。php-cgi只是個CGI 程序,他自己本身只能解析請求,返回結果,不會進程管理(皇上,臣妾真的做不到啊!)所以就出現了一些能夠調度php-cgi進程的程序,比如說由lighthttpd分離出來的spawn-fcgi。好了PHP-FPM也是這么個東東,在長時間的發展后,逐漸得到了大家的認可,也越來越流行。

PHP-CGI是解釋PHP腳本的程序而已。
PHP-FPM是一個FastCGI 管理器,是只用于PHP的,可以在 http://php-fpm.org/download下...。

參考: https://segmentfault.com/q/10...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30913.html

相關文章

  • PHP|什么CGI, FastCGI, PHP-CGI, PHP-FPM, Spawn-FCGI

    摘要:當客戶端請求到達時,進程管理器選擇并連接到一個解釋器。什么是是一個管理器,是只用于的可以在下載得到其實是源代碼的一個補丁,旨在將進程管理整合進包中。與功能比較都是守護的進程管理器。 什么是CGI CGI全稱是公共網關接口(Common Gateway Interface),HTTP服務器與你的或其它機器上的程序進行交談的一種工具,其程序須運行在網絡服務器上。 CGI可以用任何一種語言編...

    el09xccxy 評論0 收藏0
  • 什么CGI、FastCGI、PHP-CGIPHP-FPM

    摘要:的工作原理啟動時載入進程管理器或進程管理器自身初始化,啟動多個解釋器進程可見多個并等待來自的連接。當客戶端請求到達時,進程管理器選擇并連接到一個解釋器。什么是是一個管理器,是只用于的其實是源代碼的一個補丁,旨在將進程管理整合進包中。 什么是CGI CGI全稱是公共網關接口(Common Gateway Interface),HTTP服務器與你的或其它機器上的程序進行交談的一種工具,其程...

    MycLambert 評論0 收藏0
  • 困擾已久的問題cgi、fastcgiPHP-fpm匯總

    摘要:通過或在服務器上運行時可以使用的可執行文件,可以理解為解釋器也有說是官方的進程管理器,至于是什么文章后面再分析,這里就當作解釋器。就是為了解決的問題,制定的協議。 一個模糊的概念 無論是php,python編程語言,還是apache,nginx服務器對于cgi協議是個繞不開的話題。安裝,部署都會經常的看到,那么它們到底是干什么的,網上的答案非常的多!今天通過它們進行一波匯總,徹底告別這...

    nidaye 評論0 收藏0
  • 困擾已久的問題cgi、fastcgiPHP-fpm匯總

    摘要:通過或在服務器上運行時可以使用的可執行文件,可以理解為解釋器也有說是官方的進程管理器,至于是什么文章后面再分析,這里就當作解釋器。就是為了解決的問題,制定的協議。 一個模糊的概念 無論是php,python編程語言,還是apache,nginx服務器對于cgi協議是個繞不開的話題。安裝,部署都會經常的看到,那么它們到底是干什么的,網上的答案非常的多!今天通過它們進行一波匯總,徹底告別這...

    Hwg 評論0 收藏0
  • 困擾已久的問題cgi、fastcgiPHP-fpm匯總

    摘要:通過或在服務器上運行時可以使用的可執行文件,可以理解為解釋器也有說是官方的進程管理器,至于是什么文章后面再分析,這里就當作解釋器。就是為了解決的問題,制定的協議。 一個模糊的概念 無論是php,python編程語言,還是apache,nginx服務器對于cgi協議是個繞不開的話題。安裝,部署都會經常的看到,那么它們到底是干什么的,網上的答案非常的多!今天通過它們進行一波匯總,徹底告別這...

    Winer 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<