久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      php中cgi和fcgi有什么區(qū)別

      php中cgi和fcgi的區(qū)別:cgi是“common gateway interface”的縮寫(xiě),指的是通用網(wǎng)關(guān)接口,而fcgi是“fast common gateway interface”的縮寫(xiě),指的是快速通用網(wǎng)關(guān)接口?!皃hp-cgi”是CGI協(xié)議的實(shí)現(xiàn),“PHP-FPM”是FCGI協(xié)議的實(shí)現(xiàn)。

      php中cgi和fcgi有什么區(qū)別

      本文操作環(huán)境:Windows10系統(tǒng)、PHP8.1版、Dell G3電腦

      php中cgi和fcgi有什么區(qū)別

      CGI:common gateway interface 通用網(wǎng)關(guān)接口

      FCGI:fast common gateway interface 快速通用網(wǎng)關(guān)接口

      php-cgi是CGI協(xié)議的實(shí)現(xiàn),PHP-FPM是FCGI協(xié)議的實(shí)現(xiàn)。

      CGI 就是web服務(wù)器如nginx跟后端動(dòng)態(tài)腳本語(yǔ)言如PHP通信的協(xié)議接口。

      擴(kuò)展知識(shí)

      1.場(chǎng)景:

      瀏覽器請(qǐng)求web服務(wù)器如nginx,如果請(qǐng)求的是靜態(tài)的index.html,則nginx可以直接返回。但是如果請(qǐng)求的是idex.php,nginx根據(jù)配置發(fā)現(xiàn)不是靜態(tài)資源,需要請(qǐng)求后端的服務(wù)。那么,nginx在請(qǐng)求后端服務(wù)時(shí),需要以什么樣的格式、發(fā)送給后端服務(wù)什么樣的數(shù)據(jù)呢?CGI就是定義格式、數(shù)據(jù)的協(xié)議。

      2.CGI協(xié)議的缺點(diǎn):

      CGI協(xié)議每次在請(qǐng)求后端服務(wù)時(shí)都要啟動(dòng)實(shí)現(xiàn)CGI協(xié)議的程序,這里就是PHP解析器。PHP解析器會(huì)解析PHP.ini文件,進(jìn)行初始化工作,處理請(qǐng)求、返回結(jié)果。每個(gè)請(qǐng)求都要重新初始化,工作太冗余。所以,F(xiàn)CGI應(yīng)運(yùn)而生。

      因?yàn)镻HP是解釋型語(yǔ)言,因此需要解釋器去解釋PHP代碼。

      3.FCGI的優(yōu)點(diǎn):

      FCGI協(xié)議首先啟動(dòng)一個(gè)master,master用來(lái)解析PHP.ini文件,進(jìn)行初始化工作。啟動(dòng)多個(gè)worker,worker用來(lái)處理具體的請(qǐng)求。這樣將初始化和處理具體的請(qǐng)求就分離了。這樣也就需要一個(gè)程序來(lái)管理master和worker,所以PHP-FPM就出現(xiàn)了。

      FCGI采用C/S架構(gòu)。將web服務(wù)器與腳本解析服務(wù)器分離開(kāi)來(lái)。使得web服務(wù)器只處理靜態(tài)資源和將后端腳本解析服務(wù)器返回的數(shù)據(jù)返回給瀏覽器。

      web服務(wù)器nginx不支持對(duì)外部程序如PHP程序的直接調(diào)用或者解析,因此必須通過(guò)CGI接口來(lái)調(diào)用。這是其實(shí)需要將CGI進(jìn)行一個(gè)封裝,形成一個(gè)wrapper,其實(shí)就是PHP-FPM。nginx調(diào)用PHP-FPM,PHP-FPM再調(diào)用后端的PHP代碼,然后PHP-FPM返回結(jié)果給nginx。

      現(xiàn)在PHP-FPM已經(jīng)被集成到PHP內(nèi)核中。

      PHP-FPM與nginx經(jīng)常會(huì)部署在不同服務(wù)器上,以減輕前端nginx處理靜態(tài)資源,轉(zhuǎn)發(fā)動(dòng)態(tài)請(qǐng)求的壓力。

      而且FCGI也比CGI要安全。

      4.CGI協(xié)議的實(shí)現(xiàn)PHP-CGI

      如果修改了php.ini文件,PHP-CGI是無(wú)法平滑過(guò)渡的。也就是,必須要重啟PHP-CGI程序才能使用這些新的配置。

      5.FCGI協(xié)議的實(shí)現(xiàn)PHP-FPM

      如果修改了php.ini文件,PHP-FPM可以實(shí)現(xiàn)平滑過(guò)渡。對(duì)于修改之前的worker,當(dāng)處理完這次請(qǐng)求之后,會(huì)對(duì)其進(jìn)行銷(xiāo)毀,新生成的worker可以使用新的配置。這樣也就實(shí)現(xiàn)了平滑過(guò)渡。

      而且,如果PHP-CGI進(jìn)程掛了,PHP也就不能運(yùn)行了。PHP-FPM沒(méi)有這個(gè)問(wèn)題,守護(hù)進(jìn)程會(huì)平滑重新啟動(dòng)一個(gè)子進(jìn)程。

      PHP-FPM在出現(xiàn)之前,其實(shí)有個(gè)從lighthttpd發(fā)展來(lái)的spawn-fcgi。PHP-FPM可以在初始化時(shí)創(chuàng)建多個(gè)worker,當(dāng)有worker空閑時(shí),可以對(duì)worker進(jìn)行回收。

      spawn-fcgi在高并發(fā)時(shí)會(huì)出現(xiàn)內(nèi)存泄漏、甚至自動(dòng)重啟FCGI的問(wèn)題。

      推薦學(xué)習(xí):《PHP視頻教程》

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)