Nginx與PHP交互過程的7步走(用戶對(duì)動(dòng)態(tài)PHP網(wǎng)頁(yè)訪問過程)
- step1:用戶將http請(qǐng)求發(fā)送給nginx服務(wù)器(用戶和nginx服務(wù)器進(jìn)行三次握手進(jìn)行TCP連接)。
- step2:nginx會(huì)根據(jù)用戶訪問的URL和后綴對(duì)請(qǐng)求進(jìn)行判斷。
- step3:通過第二步可以看出,用戶請(qǐng)求的是動(dòng)態(tài)內(nèi)容,nginx會(huì)將請(qǐng)求交給fastcgi客戶端,通過fastcgi_pass將用戶的請(qǐng)求發(fā)送給php-fpm。如果用戶訪問的是靜態(tài)資源呢,那就簡(jiǎn)單了,nginx直接將用戶請(qǐng)求的靜態(tài)資源返回給用戶。
- step4:fastcgi_pass將動(dòng)態(tài)資源交給php-fpm后,php-fpm會(huì)將資源轉(zhuǎn)給php腳本解析服務(wù)器的wrapper。
- step5:wrapper收到php-fpm轉(zhuǎn)過來的請(qǐng)求后,wrapper會(huì)生成一個(gè)新的線程調(diào)用php動(dòng)態(tài)程序解析服務(wù)器。
- step6:php會(huì)將查詢到的結(jié)果返回給nginx。
- step7:nginx構(gòu)造一個(gè)響應(yīng)報(bào)文將結(jié)果返回給用戶。
這只是nginx的其中一種,用戶請(qǐng)求的和返回用戶請(qǐng)求結(jié)果是異步進(jìn)行,即為用戶請(qǐng)求的資源在nginx中做了一次中轉(zhuǎn),nginx可以同步,即為解析出來的資源,服務(wù)器直接將資源返回給用戶,不用在nginx中做一次中轉(zhuǎn)。
即:Nginx -> FastCGI -> php-fpm -> FastCGI Wrapper -> php解析器
以上7個(gè)就是交互的簡(jiǎn)單步驟,感謝大家的學(xué)習(xí)和對(duì)腳本之家的支持。
您可能感興趣的文章:- 詳解php+nginx 服務(wù)發(fā)生500 502錯(cuò)誤排查思路
- 深入分析nginx+php-fpm服務(wù)HTTP狀態(tài)碼502
- 利用PHP如何統(tǒng)計(jì)Nginx日志的User Agent數(shù)據(jù)
- 詳解nginx+php執(zhí)行請(qǐng)求的工作原理