[講解] nginx 與php | nginx php設定
nginx+php-fpm是現在常常用來與代替以前的phpapache伺服器,其最大的優點是使用的系統資源較少,並且nginx對於靜態檔案的處理速度非常快,本篇將講解nginx與php-fpm之間是如何運作的。nginx是什麼?首先來了解一下nginx是什麼,nginx是一個webserver,其主要功能是反向代理、負載平衡器和HTTP快取,nginx本身就能夠做一個靜態檔案伺服器,現在最常主要負責:處理靜態檔案依據規則轉發request資料壓縮(gzip)傳輸的資料加密(https)其沒有一定要用於php,可以依據情況將request丟給其他程式語言處理,或是將request丟給不同的php版本處理...
nginx + php-fpm 是現在常常用來與代替以前的 php apache 伺服器,其最大的優點是使用的系統資源較少,並且 nginx 對於靜態檔案的處理速度非常快,本篇將講解 nginx 與 php-fpm 之間是如何運作的。
nginx 是什麼 ?首先來了解一下 nginx 是什麼,nginx 是一個 web server,其主要功能是反向代理、負載平衡器和 HTTP 快取,nginx 本身就能夠做一個靜態檔案伺服器,現在最常主要負責:
處理靜態檔案 依據規則轉發 request 資料壓縮 (gzip) 傳輸的資料加密 (https)其沒有一定要用於 php,可以依據情況將 request 丟給其他程式語言處理,或是將 request 丟給不同的 php 版本處理。
php-fpm 是什麼 ?fpm 是 FastCGI Process Manager 的縮寫,其功能非常的單純,專門接收特定 request 並且運行 php 腳本產生結果。
fpm-fpm 可以啟動多個 child process 來運行 php 腳本,有效的使用多核心 cpu 的效能
而每個 process 並不是 request 執行完就關閉,而是會先閒置,等待處理下一個 request,如果閒置太久,且已經太多 process 都閒置狀態才會關閉,所以不會有反覆啟動 processs 導致資源浪費。
例如下面得設定
pm.start_servers = 4 pm.max_children = 10 pm.min_spare_servers = 2 pm.max_spare_servers = 6 pm.max_requests = 500其效果為:
伺服器啟動時就開啟 4 個 process 最多 10 個 children process 最小閒置 process 數量 最大閒置 process 數量 一個 process 處理 500 個 request 後會重啟 nginx 與 php-fpm 運作說明這邊以常見的 php-fpm 設定來說明
server...