摘要:概念全稱是通用網(wǎng)關(guān)接口,服務(wù)器與應(yīng)用進(jìn)行交談的一種工具,其程序須運(yùn)行在網(wǎng)絡(luò)服務(wù)器上。開啟之后,會看到多個進(jìn)程,它們都由管理。一些進(jìn)步修改配置后,平滑過渡,新的進(jìn)程使用新的配置,正在運(yùn)行的進(jìn)程處理完當(dāng)前請求后自動。
CGI(Common Gateway InterFace)
既然webserver想把這個請求交給可以處理的人來做,是不是該告訴人家一些基本的,并且人家看得懂的信息信息?
Webserver會傳那些基本信息給后端處理請求的解析器呢?url,get請求的query_string,POST數(shù)據(jù),Http Header等,那么CGI就規(guī)定了要傳哪些參數(shù),以及以一個什么樣的格式傳過去,后端處理完這個請求,又該以什么樣的格式傳回。
概念:CGI(Common Gateway Interface)全稱是“通用網(wǎng)關(guān)接口”,WEB 服務(wù)器與PHP應(yīng)用進(jìn)行“交談”的一種工具,其程序須運(yùn)行在網(wǎng)絡(luò)服務(wù)器上。CGI可以用任何一種語言編寫,只要這種語言具有標(biāo)準(zhǔn)輸入、輸出和環(huán)境變量。也就是說,CGI用來在web服務(wù)器與后端實(shí)現(xiàn)了CGI協(xié)議的程序之間提供一個溝通的橋梁,降低兩者之間的耦合性。
缺陷:采用了效率低下的”FE”模式,就是Fork-And-Execute,每個web請求進(jìn)來之后,都會啟動一個php程序,處理完請求后退出,浪費(fèi)資源,高請求數(shù)下,服務(wù)器宕機(jī)。
FastCGI
有沒有效率更高的解決辦法呢,可以不可一完事先別走呢?
這就衍生出了FastCGI,也可以理解為一種協(xié)議,在CGI協(xié)議上進(jìn)行強(qiáng)化,從原來的”FE”模式進(jìn)化為”LL”模式,即Long-Live模式,運(yùn)行完畢之后,常駐內(nèi)存。同樣,它也是語言無關(guān)性的,只要你具有標(biāo)準(zhǔn)輸入輸出和環(huán)境變量,那么就OK。
FastCGI會先啟動一個Master進(jìn)程,Master讀取和處理基礎(chǔ)的配置文件,初始化環(huán)境,之后依據(jù)配置生成多個worker進(jìn)程來處理請求。并且可以動態(tài)調(diào)整worker的數(shù)量。
PHP-CGI
Fast-cgi聽起來很不錯,有沒人用用它的呀?php-cgi是實(shí)現(xiàn)FastCGI協(xié)議的php解釋器。
缺陷:
更改php.ini配置后需要重啟php-cgi進(jìn)程,且會殺死正在運(yùn)行的進(jìn)程。
單進(jìn)程,不具備進(jìn)程管理能力,效率很低。
PHP-FPM
概念:一個實(shí)現(xiàn)FastCGI多進(jìn)程(進(jìn)程池)管理的管理器。開啟之后,會看到多個php-cgi進(jìn)程,它們都由php-fpm管理。
一些進(jìn)步:
修改配置后,平滑過渡,新的worker進(jìn)程使用新的配置,正在運(yùn)行的worker進(jìn)程處理完當(dāng)前請求后自動shutdown。多進(jìn)程的效率比單進(jìn)程更高。
轉(zhuǎn)載來源:http://lib.csdn.net/article/p...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/30194.html
摘要:原理啟動時載入進(jìn)程管理器或進(jìn)程管理器自身初始化,啟動多個解釋器進(jìn)程可見多個并等待來自的連接。當(dāng)客戶端請求到達(dá)時,進(jìn)程管理器選擇并連接到一個解釋器。子進(jìn)程接著等待并處理來自進(jìn)程管理器運(yùn)行在中的下一個連接。 CGI 簡介 CGI全稱是通用網(wǎng)關(guān)接口(Common Gateway Interface),是外部應(yīng)用程序與與服務(wù)器之間的接口標(biāo)準(zhǔn),是在CGI程序和web服務(wù)器之間傳遞信息的規(guī)程。 在...
摘要:通過或在服務(wù)器上運(yùn)行時可以使用的可執(zhí)行文件,可以理解為解釋器也有說是官方的進(jìn)程管理器,至于是什么文章后面再分析,這里就當(dāng)作解釋器。就是為了解決的問題,制定的協(xié)議。 一個模糊的概念 無論是php,python編程語言,還是apache,nginx服務(wù)器對于cgi協(xié)議是個繞不開的話題。安裝,部署都會經(jīng)常的看到,那么它們到底是干什么的,網(wǎng)上的答案非常的多!今天通過它們進(jìn)行一波匯總,徹底告別這...
摘要:通過或在服務(wù)器上運(yùn)行時可以使用的可執(zhí)行文件,可以理解為解釋器也有說是官方的進(jìn)程管理器,至于是什么文章后面再分析,這里就當(dāng)作解釋器。就是為了解決的問題,制定的協(xié)議。 一個模糊的概念 無論是php,python編程語言,還是apache,nginx服務(wù)器對于cgi協(xié)議是個繞不開的話題。安裝,部署都會經(jīng)常的看到,那么它們到底是干什么的,網(wǎng)上的答案非常的多!今天通過它們進(jìn)行一波匯總,徹底告別這...
摘要:通過或在服務(wù)器上運(yùn)行時可以使用的可執(zhí)行文件,可以理解為解釋器也有說是官方的進(jìn)程管理器,至于是什么文章后面再分析,這里就當(dāng)作解釋器。就是為了解決的問題,制定的協(xié)議。 一個模糊的概念 無論是php,python編程語言,還是apache,nginx服務(wù)器對于cgi協(xié)議是個繞不開的話題。安裝,部署都會經(jīng)常的看到,那么它們到底是干什么的,網(wǎng)上的答案非常的多!今天通過它們進(jìn)行一波匯總,徹底告別這...
摘要:通過,腳本層無需過多考慮執(zhí)行的具體環(huán)境,而本身則可以讓針對自己的特點(diǎn)給出特有實(shí)現(xiàn)。模式下,也只執(zhí)行一次。這幾個概念的關(guān)系如下網(wǎng)關(guān)協(xié)議,與語言無關(guān),所以與關(guān)系也不大??偨Y(jié)本文簡要回顧了程序的架構(gòu)和執(zhí)行流程,并對幾個容易混淆概念做了介紹。 轉(zhuǎn)載請注明文章出處:https://tlanyan.me/php-review... PHP回顧系列目錄 PHP基礎(chǔ) web請求 cookie we...
閱讀 2484·2021-10-11 10:57
閱讀 1349·2021-10-09 09:59
閱讀 2056·2019-08-30 15:53
閱讀 3257·2019-08-30 15:53
閱讀 1064·2019-08-30 15:45
閱讀 793·2019-08-30 15:44
閱讀 3500·2019-08-30 14:24
閱讀 1004·2019-08-30 14:21