php與apache整合類型有哪些-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)php與apache整合類型有哪些,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)公司成立于2013年,我們提供高端成都網(wǎng)站建設(shè)、成都網(wǎng)站制作網(wǎng)站設(shè)計(jì)、網(wǎng)站定制、營(yíng)銷型網(wǎng)站建設(shè)、微信小程序、微信公眾號(hào)開發(fā)、成都網(wǎng)站營(yíng)銷服務(wù),提供專業(yè)營(yíng)銷思路、內(nèi)容策劃、視覺設(shè)計(jì)、程序開發(fā)來(lái)完成項(xiàng)目落地,為成都柴油發(fā)電機(jī)企業(yè)提供源源不斷的流量和訂單咨詢。

一、CGI

CGI(common gateway interface)通常翻譯為共同網(wǎng)關(guān)接口,是HTTP服務(wù)器與機(jī)器上的其他程序進(jìn)行通信的一個(gè)接口,讓W(xué)eb服務(wù)器必要時(shí)啟動(dòng)額外的程序處理動(dòng)態(tài)內(nèi)容。CGI是一種協(xié)議,它定義了Webserver與CGI程序的通信方式。Webserver接受客戶端的HTTP請(qǐng)求,然后建立進(jìn)程執(zhí)行CGI程序,客戶端的請(qǐng)求被傳遞給CGI程序,CGI執(zhí)行后結(jié)果再返回Webserver。

CGI的出現(xiàn)讓W(xué)EB從靜態(tài)變?yōu)闉閯?dòng)態(tài),隨著Web的越來(lái)越普及,很多的網(wǎng)站的都需要有動(dòng)態(tài)的頁(yè)面,以便與瀏覽者互交。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,CGI方式的缺點(diǎn)也越來(lái)越突出。每次客戶端請(qǐng)求都需要建立和銷毀進(jìn)程。因?yàn)镠TTP要生成一個(gè)動(dòng)態(tài)頁(yè)面,系統(tǒng)就必須啟動(dòng)一個(gè)新的進(jìn)程以運(yùn)行CGI程序,不斷地fork是一項(xiàng)很消耗時(shí)間和資源的工作。

二、FastCGI

眾所周知,CGI解釋器的反復(fù)加載是CGI性能低下的主要原因,如果CGI解釋器保持在內(nèi)存中 并接受FastCGI進(jìn)程管理器調(diào)度,則可以提供良好的性能、伸縮性、Fail-Over特性等等。

FastCGI是一個(gè)常駐型的CGI,可以一直執(zhí)行,只要激活后,不會(huì)每次都花時(shí)間去fork一次,而且還支持分布式運(yùn)算(使得php程序解釋執(zhí)行可以單獨(dú)交給php服務(wù)器),即可以在網(wǎng)站服務(wù)器以外的主機(jī)上執(zhí)行并且接受來(lái)自其它網(wǎng)站服務(wù)器來(lái)的請(qǐng)求。

1、Web Server 啟動(dòng)時(shí)載入FastCGI進(jìn)程管理器(IIS ISAPI或Apache Module);

2、FastCGI進(jìn)程管理器自身初始化,啟動(dòng)多個(gè)CGI解釋器進(jìn)程 (在任務(wù)管理器中可見多個(gè)php-cgi.exe)并等待來(lái)自Web Server的連接。

3、當(dāng)客戶端請(qǐng)求到達(dá)Web Server時(shí),F(xiàn)astCGI進(jìn)程管理器選擇并連接到一個(gè)CGI解釋器。Web server將CGI環(huán)境變量和標(biāo)準(zhǔn)輸入發(fā)送到FastCGI子進(jìn)程php-cgi.exe。

4、FastCGI子進(jìn)程完成處理后將標(biāo)準(zhǔn)輸出和錯(cuò)誤信息從同一連接返回Web Server。當(dāng)FastCGI子進(jìn)程關(guān)閉連接時(shí),請(qǐng)求便告處理完成。FastCGI子進(jìn)程接著等待并處理來(lái)自FastCGI進(jìn)程管理器(運(yùn)行在 WebServer中)的下一個(gè)連接。 在正常的CGI模式中,php-cgi.exe在此便退出了。

三、Module

把php編譯為apache的模塊,就要考慮apache的MPM的工作模式。

首先我們要了解什么是MPM:

MPM:Multi Path Modules (多道處理模塊)用于定義apache在響應(yīng)多個(gè)用戶請(qǐng)求時(shí)所工作的模型。有三種MPM模式:

prefork(一個(gè)請(qǐng)求一個(gè)進(jìn)程響應(yīng));

worker(一個(gè)請(qǐng)求用一個(gè)線程響應(yīng),啟動(dòng)多個(gè)進(jìn)程每個(gè)進(jìn)程生成多個(gè)線程);

event(一個(gè)進(jìn)程處理多個(gè)請(qǐng)求);

以模塊安裝的php沒有獨(dú)立的進(jìn)程,是作為apache的模塊和apache一起啟動(dòng)的。

以上三種MPM模式,worker模式會(huì)比prefork模式占據(jù)更少的內(nèi)存,高并發(fā)下的表現(xiàn)更好。而且使用多進(jìn)程和多線程混合模式,即使有一個(gè)線程掛了,也只影響和該線程同進(jìn)程的其他線程,不會(huì)影響到其他的進(jìn)程。但是如果有特別多的線程都使用keep-alive的長(zhǎng)連接方式,則線程會(huì)一直被占據(jù)直到超時(shí)才釋放,導(dǎo)致在高并發(fā)場(chǎng)景下無(wú)可用線程。而event模式使用了一個(gè)專門的線程來(lái)處理這些keep-alive類線程,較好的解決了這個(gè)問題。

關(guān)于php與apache整合類型有哪些就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

標(biāo)題名稱:php與apache整合類型有哪些-創(chuàng)新互聯(lián)
文章出自:http://muchs.cn/article20/eigco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作網(wǎng)站設(shè)計(jì)、靜態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、電子商務(wù)、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名