PHP-fpm + nginx

shoulder1205發表於2017-05-20

一、初窺計算機網路
file

伺服器向客服端提供服務

由此圖看來, 伺服器也是經過了七層OSI的。

二、試驗
request: http://x_build.cc/img/home/index.html

www.conf 配置檔案(php-fpm) nginx.conf 配置檔案(fast-cgi) 檔案index.html是否存在 瀏覽器返回報錯 fast-cgi是否載入並監聽 php-fpm是否解析
;security.limit_extensions = location ~* .*\.(php|html)?$ 存在 403
;security.limit_extensions = location ~* .*\.(php|html)?$ 不存在 404
security.limit_extensions = html location ~* .*\.(php|html)?$ 存在 200(顯示檔案內容)
security.limit_extensions = html location ~* .*\.(php|html)?$ 不存在 404
;security.limit_extensions = location ~* .*\.(php)?$ 存在 200
;security.limit_extensions = location ~* .*\.(php)?$ 不存在 404 否(當做靜態資源處理)
security.limit_extensions = html location ~* .*\.(php)?$ 不存在 403 是(當做動態資源處理)
security.limit_extensions = html location ~* .*\.(php)?$ 存在 200 否(當做靜態資源處理)

以上的測試結果能夠表明在nginx配置 location ~ ..(php|html)?$中, php|html字尾檔案都會載入nginx的fast-cgi模組, 並監聽127.0.0.1:9000地址, 當請求到達127.0.0.1:9000地址時, 檔案已經被載入到記憶體了(由table - row1 & row2能得出結論)

三、nginx與php-fpm結合的完整流程


x_build.cc/img/home/index.html
       |
       |
      Nginx
        |
        |
路由到x_build.cc/img/home/index.html 
        |
        |
載入nginx的fast-cgi模組
        |
        |
fast-cgi監聽127.0.0.1:9000地址
        |
        |
x_build.cc/img/home/index.html請求到達127.0.0.1:9000 (猜想:此時已經載入了index.html檔案)
        |
        |
php-fpm 監聽127.0.0.1:9000
        |
        |
php-fpm 接收到請求,啟用worker程式處理請求
        |
        |
php-fpm 處理完請求,返回給nginx
        |
        |
nginx將結果通過http返回給瀏覽器

參考文章:https://segmentfault.com/a/119000000732235...

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章