欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

PHP接收到請(qǐng)求的原因-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)PHP 接收到請(qǐng)求的原因,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

創(chuàng)新互聯(lián)專注于網(wǎng)站建設(shè)|成都網(wǎng)站維護(hù)|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計(jì)與制作經(jīng)驗(yàn),為許多企業(yè)提供了網(wǎng)站定制設(shè)計(jì)服務(wù),案例作品覆蓋白烏魚等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產(chǎn)品,結(jié)合品牌形象的塑造,量身定制品質(zhì)網(wǎng)站。

本篇文章主要描述一下幾點(diǎn)

● nginx 怎么轉(zhuǎn)發(fā)請(qǐng)求 給 PHPFPM?

● CGI 和 FastCGI 到底是個(gè)什么玩意?

● PHPFPM 是什么?有什么作用?

簡(jiǎn)單場(chǎng)景描述

在瀏覽器上訪問一個(gè) php+nginx+mysql 構(gòu)建的商城,并且購(gòu)買一件商品。

分析 (這里訪問的有兩種資源)

● 靜態(tài)資源(網(wǎng)站的一些圖片,圖標(biāo)等)

● 動(dòng)態(tài)資源 (購(gòu)買商品的價(jià)格,商品的簡(jiǎn)介等)

瀏覽器發(fā)起請(qǐng)求 --> web_server(nginx)分發(fā)處理 --> php 執(zhí)行代碼返回結(jié)果 (這是大概的流程)

nginx 是怎么分發(fā)請(qǐng)求?

當(dāng)用戶發(fā)起請(qǐng)求的時(shí)候 (瀏覽器默認(rèn)請(qǐng)求 80 端口),nginx 監(jiān)聽到 80 端口,通過 nginx 配置正則匹配是否屬于靜態(tài)資源,如果是靜態(tài)資源則返回文件,請(qǐng)求結(jié)束。如果是動(dòng)態(tài)資源,通過 正則匹配到請(qǐng)求 php 腳本,那么他會(huì)通過 nginx 的模塊 ngx_http_fastcgi_module 把請(qǐng)求分發(fā)給 PHPFPM 處理,然后處理完畢返回結(jié)果。

● CGI

CGI 是 Web 服務(wù)器運(yùn)行外部程序的規(guī)范。意思就是通過 CGI 可以與你的程序通信,通過 CGI 標(biāo)準(zhǔn)格式。你的程序可以和瀏覽器交互。

(簡(jiǎn)單理解 CGI 就是一個(gè)協(xié)議,規(guī)定了一些東西該怎么傳,你的程序這邊怎么接受處理等規(guī)范。)

● PHP-CGI

PHP-CGI 就是 CGI 協(xié)議 php 的一個(gè)實(shí)現(xiàn)版。PHP-CGI 會(huì)為每個(gè)請(qǐng)求 fork 一個(gè)進(jìn)程處理,處理完成后退出。(這個(gè)模式叫做 fork-and-execute)。這樣的模式不符合現(xiàn)在動(dòng)不動(dòng)大規(guī)模的流量,所以已退出歷史舞臺(tái)。

● FastCGI

FastCGI 是 CGI 的升級(jí)版,他會(huì)預(yù)先啟動(dòng)一個(gè) master 進(jìn)程讀取配置文件,然后 fork 多個(gè) work 進(jìn)程等待連接。監(jiān)聽到請(qǐng)求,分配個(gè) work 進(jìn)程做具體的處理。這樣大大提高了程序的性能。(FastCGi 會(huì)管理進(jìn)程,處理完成后不會(huì)輕易銷毀。而 CGI 會(huì)為每一個(gè)請(qǐng)求 創(chuàng)建進(jìn)程,銷毀進(jìn)程。)

● PHPFPM

作為世界上最好的語言,當(dāng)然要跟上潮流。當(dāng)發(fā)現(xiàn) PHP-CGI 性能不佳時(shí),又恰好出現(xiàn)了 FastCGI 協(xié)議。所以 PHP 實(shí)現(xiàn)了一個(gè) php 版本的 FastCGI,名字叫做 PHPFPM(FastCGI Process Manager)。 PHPFPM 啟動(dòng)時(shí)會(huì)開啟 一個(gè) master 進(jìn)程和若干個(gè) work 進(jìn)程。master 進(jìn)程監(jiān)聽請(qǐng)求,并轉(zhuǎn)發(fā)給 work 進(jìn)程處理,每一個(gè) work 進(jìn)程都有一個(gè) php 解釋器,你的代碼在每一個(gè) work 進(jìn)程中都有一份,work 進(jìn)程是真正執(zhí)行代碼的地方。

SO

PHPFPM 監(jiān)聽 9000 端口,nginx 匹配到 php 文件,把請(qǐng)求轉(zhuǎn)發(fā)給 PHPFPM。PHPFPM master 監(jiān)聽到請(qǐng)求后,分配給 work 處理(每一個(gè) work 進(jìn)程中都有一個(gè) php 解釋器),PHPFPM 在啟動(dòng)的時(shí)候就已經(jīng) work 進(jìn)程已經(jīng)加載了配置,加載了你寫代碼。所以說 work 進(jìn)程收到請(qǐng)求后立馬執(zhí)行,然后返回結(jié)果。

ngx_http_fastcgi_module 模塊

在瀏覽器請(qǐng)求 web_server 是 http 協(xié)議 或者 https 協(xié)議,但是 PHPFPM 不懂怎么辦了?這里 nginx 提供了一個(gè) ngx_http_fastcgi_module ,ngx_http_fastcgi_module 把 http 或者 https 請(qǐng)求 映射成 FastCGI 請(qǐng)求。這樣 php 程序就能和用戶互動(dòng)了。

純個(gè)人理解,如果有誤請(qǐng)指出。

關(guān)于PHP 接收到請(qǐng)求的原因就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

當(dāng)前題目:PHP接收到請(qǐng)求的原因-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://chinadenli.net/article16/dgjodg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)小程序開發(fā)網(wǎng)站排名、商城網(wǎng)站用戶體驗(yàn)、微信小程序

廣告

聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)