php-fpm是行程管理器 , 屬于master-worker多行程的模式
當請求xxx.php檔案時 , 每一個子worker行程都是在讀取和回應FastCGI協議的內容
fastcgi的方式是,fpm啟動運行后 , 會常駐記憶體監聽埠(默認9000) , 當web服務器收到一個請求時,他不會重新fork一個行程,web服務器直接把內容傳遞給這個行程(行程間通信,但fastcgi使用tcp方式通信發送資料到9000埠),這個行程收到請求后進行處理,把結果回傳給web服務器,最后自己接著等待下一個請求的到來,而不是退出.
strace $(pidof 'php-fpm'|sed 's/\([0-9]*\)/-p \1/g') -e read,write -s 102400
下圖就是在讀取FastCGI協議的內容

使用tcpdump查看9000埠的資料傳遞 , 也能看到fastcgi協議的內容
tcpdump -i any port 9000 -l -s 0 -w -|strings

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/270617.html
標籤:PHP
