php-fpm.conf 配置文件詳解


                            php-fpm.conf  配置文件詳解                              

 

[global]
pid = run/php-fpm.pid
error_log = log/php-fpm.log
log_level = notice
#錯誤級別. 可用級別為: alert(必須立即處理), error(錯誤情況), warning(警告情況), notice(一般重要信息), debug(調試信息). 默認: notice.

rlimit_files = 65535
#設置核心rlimit最大限制值.

[www]
user = joy
group = joy
listen = 127.0.0.1:9000
#fpm監聽端口,即nginx中php處理的地址

listen.backlog = 2048
#backlog數,-1表示無限制,由操作系統決定,此行注釋掉就行。

pm = dynamic
pm.max_children = 1024
#,子進程最大數

pm.start_servers = 10         
#控制服務啟動時創建的進程數

pm.min_spare_servers = 10     
#,保證空閑進程數最小值,如果空閑進程小於此值,則創建新的子進程

pm.max_spare_servers = 60
#保證空閑進程數最大值,如果空閑進程大於此值,此進行清理

pm.max_requests = 102400
#設置每個子進程重生之前服務的請求數. 對於可能存在內存泄漏的第三方模塊來說是非常有用的. 如果設置為 '0' 則一直接受請求. 等同於 PHP_FCGI_MAX_REQUESTS 環境變量. 默認值: 0.

request_terminate_timeout = 10s
#設置單個請求的超時中止時間. 該選項可能會對php.ini設置中的'max_execution_time'因為某些特殊原因沒有中止運行的腳本有用. 設置為 '0' 表示 'Off'.當經常出現502錯誤時可以嘗試更改此選項。

request_slowlog_timeout = 10s
#當一個請求該設置的超時時間后,就會將對應的PHP調用堆棧信息完整寫入到慢日志中. 設置為 '0' 表示 'Off'

slowlog = var/log/$pool.log.slow
#慢請求的記錄日志,配合request_slowlog_timeout使用

 

  • 設置”max_children”也需要根據服務器的性能進行設定,一台服務器正常情況下每一個php-cgi所耗費的內存在20M左右,因 此我的”max_children”我設置成40個,20M*40=800M也就是說在峰值的時候所有PHP-CGI所耗內存在800M以內,低於我的有 效內存1Gb。而如果我的”max_children”設置的較小,比如5-10個,那么php-cgi就會“很累”,處理速度也很慢,等待的時間也較 長。如果長時間沒有得到處理的請求就會出現504 Gateway Time-out這個錯誤,而正在處理的很累的那幾個php-cgi如果遇到了問題就會出現502 Bad gateway這個錯誤。

 

  • nginx會直接把 請求轉交給php-fpm,而php-fpm再分配php-cgi進程來處理相關的請求,之后再依次返回,最后由nginx把結果反饋給客戶端瀏覽器

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM