首頁 > 後端開發 > PHP問題 > Nginx+Php-fpm運作原理詳解

Nginx+Php-fpm運作原理詳解

移动用户-8334543
發布: 2022-06-17 15:01:43
原創
223 人瀏覽過

一、使用者對動態PHP網頁存取流程

step1:使用者將http請求傳送給nginx伺服器
step2:nginx會根據使用者造訪的URI和後綴對請求進行判斷
step3:透過第二步可以看出,使用者要求的是動態內容,nginx會將請求交給fastcgi客戶端,透過fastcgi_pass將使用者的請求傳送給php-fpm
如果使用者存取的是靜態資源呢,那就簡單了,nginx直接將使用者要求的靜態資源回傳給使用者。
step4:wrapper收到php-fpm轉過來的請求後,wrapper會產生一個新的執行緒呼叫php動態程式解析伺服器
step5:php會將查詢到的結果傳回給nginx
step6: nginx建構一個回應封包將結果傳回給使用者

cgi協定

cgi 通訊協定

fastcgi協定

fastcgi協定是對cgi協定效率補充提升,主要是針對每次請求過來時都需要啟動一個cgi解釋器進程的最佳化,不再需要cgi解釋器進程每次收到webserver請求後都需要重新載入php.ini檔案和初始化執行環境

php-fpm進程管理器

php-fpm是對fastcgi協定的實現,是進程管理器,啟動時包含master和worker進程兩部分,master進程負責管理worker進程, worker進程一般具有多個,用來監聽端口,接收來自webserver請求,且每個worker進程都有一個cgi進程解釋器,用來執行php代碼

tcp有哪五層協議?

應用程式層、傳輸層、網路層、資料鏈結層、實體層

#談tcp三次握手?

1. 用戶端向服務端發送一個連線請求封包,其中SYN設定為1,並隨即選擇一個起始序號 seq=x

2.服務端收到請求封包段後,向客戶端發送一個確認封包段,其中SYN和ACK設定為1,確認號碼欄位為x 1,並產生一個起始序號seq=y

3. 當用戶端收到確認封包段後,再向服務端一個確認封包,其中ACK設定為1,確認號碼欄位為y 1,序號欄位為x 1

註:SYN為同步序號,ACK為確認序號標誌

nginx接到請求,根據監聽埠找到要存取的php文件,並透過socket與其中一個常駐記憶體fast-cgi程式建立連接,並將接收到的資料傳給fast-cgi,php-fpm管理fast-cgi進程,掛了後就再啟動起來,fast-cgi執行php程序,完成資料的取得後再透過該連線傳回給nginx,回傳到用戶client。

cookie和session有什麼差別?

1. cookie儲存在瀏覽器上,session儲存在伺服器上

2. 別人可以分析本地的cookie從而進行cookie欺騙,考慮安全性應用session

3. 單一cookie的儲存限制是4k,而瀏覽器對session沒有限制

以上是Nginx+Php-fpm運作原理詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
1
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板