以下是【金聰采編】分享的內(nèi)容全文:
PHP-FPM(FastCGI Process Manager:FastCGI進(jìn)程管理器)是一個(gè)PHPFastCGI管理器,用于管理 PHP 進(jìn)程池、接收和處理 Web 服務(wù)器的請(qǐng)求。PHP-FPM 會(huì)創(chuàng)建一個(gè)主進(jìn)程,控制何時(shí)以及如何把 HTTP 請(qǐng)求轉(zhuǎn)發(fā)給一個(gè)或多個(gè)子進(jìn)程處理。
全局配置
emergency_restart_threshold = 60(建議值)
如果子進(jìn)程在 emergency_restart_interval 設(shè)定的時(shí)間內(nèi)收到該參數(shù)設(shè)定次數(shù)的 SIGSEGV 或者 SIGBUS退出信息號(hào),則FPM會(huì)重新啟動(dòng)。
emergency_restart_interval = 1m
用于設(shè)定平滑重啟的間隔時(shí),單位:s(秒),m(分),h(小時(shí))或者 d(天)。默認(rèn)單位:s(秒)。
這個(gè)兩個(gè)設(shè)置的作用是,如果在指定的一段時(shí)間內(nèi)指定的子進(jìn)程失效了,讓 PHP-FPM 重啟。
這個(gè)兩個(gè)設(shè)置默認(rèn)是關(guān)閉的,建議開(kāi)啟,
進(jìn)程池配置
PHP-FPM 中有一個(gè) Pool Definitions 的區(qū)域,意為進(jìn)程池,通常建議一個(gè) PHP 應(yīng)用使用一個(gè)進(jìn)程池。
PHP-FPM 配置文件有默認(rèn)名為 www 的配置內(nèi)容。
user = 運(yùn)行 PHP 的非 root 用戶(hù)
子進(jìn)程運(yùn)行的用戶(hù)。必須設(shè)置。
group = 運(yùn)行 PHP 的非 root 用戶(hù)所屬的用戶(hù)組
子進(jìn)程運(yùn)行的用戶(hù)組。如果沒(méi)有設(shè)置,則默認(rèn)用戶(hù)的組被使用。
listen = 127.0.0.1:9000 或者 /path/to/unix/socket
設(shè)置接受 FastCGI 請(qǐng)求的地址。
listen.allowed_clients = 127.0.0.1
設(shè)置允許連接到 FastCGI 的服務(wù)器 IP 地址。默認(rèn)情況,這個(gè)字段是注釋掉了,建議開(kāi)啟。
pm = 生產(chǎn)環(huán)境 static
設(shè)置進(jìn)程管理器如何管理子進(jìn)程??捎弥担簊tatic,ondemand,dynamic。
- static:子進(jìn)程的數(shù)量是固定的(pm.max_children)。
- ondemand:進(jìn)程在有需求時(shí)才產(chǎn)生(當(dāng)請(qǐng)求時(shí),與 dynamic 相反,pm.start_servers 在服務(wù)啟動(dòng)時(shí)即啟動(dòng)。
- dynamic:子進(jìn)程的數(shù)量在下面配置的基礎(chǔ)上動(dòng)態(tài)設(shè)置:pm.max_children,pm.start_servers,pm.min_spare_servers,pm.max_spare_servers。
pm.max_children =
設(shè)置 PHP-FPM 進(jìn)程池中最多能有多少個(gè)進(jìn)程。這個(gè)沒(méi)有絕對(duì)正確值,要根據(jù)實(shí)際情況設(shè)置。
假設(shè)每個(gè) PHP 進(jìn)程使用 20-30M 內(nèi)存,為整個(gè) PHP-FPM 環(huán)境配置了 512 M 內(nèi)存,那么可以設(shè)置為 17-25 中間值。
pm.start_servers =
設(shè)置啟動(dòng)時(shí)創(chuàng)建的子進(jìn)程數(shù)目。僅在 pm 設(shè)置為 dynamic 時(shí)使用。
pm.min_spare_servers =
設(shè)置空閑服務(wù)進(jìn)程的最低數(shù)目。僅在 pm 設(shè)置為 dynamic 時(shí)使用。必須設(shè)置。
pm.max_spare_servers =
設(shè)置空閑服務(wù)進(jìn)程的最大數(shù)目。僅在 pm 設(shè)置為 dynamic 時(shí)使用。必須設(shè)置。
pm.max_requests = 1000
設(shè)置每個(gè)子進(jìn)程重生之前服務(wù)的請(qǐng)求數(shù)。對(duì)于可能存在內(nèi)存泄漏的第三方模塊來(lái)說(shuō)是非常有用的。如果設(shè)置為 '0' 則一直接受請(qǐng)求,默認(rèn)值:0。
slowlog =
慢請(qǐng)求的記錄日志。
注意 PHP-FPM 進(jìn)程所屬的用戶(hù)和用戶(hù)組必須具有相應(yīng)文件的寫(xiě)權(quán)限。
request_slowlog_timeout = 5
當(dāng)一個(gè)請(qǐng)求該設(shè)置的超時(shí)時(shí)間后,就會(huì)將對(duì)應(yīng)的 PHP 調(diào)用堆棧信息完整寫(xiě)入到慢日志中。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)金聰精品的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
1.軟件源碼推廣展示:目的展示軟件相關(guān)功能,接收技術(shù)學(xué)習(xí)者測(cè)試、測(cè)評(píng);
2.教程課程信息展示:展示課程信息,傳授課程各階段內(nèi)容;
3.設(shè)計(jì)素材圖片展示:展示素材設(shè)計(jì)理念、思維方式、傳播設(shè)計(jì)理念;
4.福利優(yōu)惠信息展示:分享各類(lèi)最新的福利信息,各種優(yōu)惠信息展示;
以上分享目的僅供學(xué)習(xí)、參考使用,請(qǐng)勿用于其他用途,如果想商業(yè)使用或者代理,請(qǐng)自行聯(lián)系版權(quán)方獲取授權(quán)。任何未獲取授權(quán)的商業(yè)使用與本站無(wú)關(guān),請(qǐng)自行承擔(dān)相應(yīng)責(zé)任。
本站不存儲(chǔ)任何資源文件,敬請(qǐng)周知!
如果您認(rèn)為本頁(yè)信息內(nèi)容侵犯了您的相關(guān)權(quán)益(包含但不限于:著作權(quán)、首發(fā)權(quán)、隱私權(quán)等權(quán)利),或者您認(rèn)為自己是此信息的權(quán)利人但是此信息不是自己發(fā)布的,可以直接版權(quán)舉報(bào)投訴,我們會(huì)根據(jù)網(wǎng)站注冊(cè)協(xié)議、資源分享協(xié)議等協(xié)議處理,以保護(hù)您的合法權(quán)益。
本網(wǎng)站采用 BY-NC-SA 協(xié)議進(jìn)行授權(quán) 轉(zhuǎn)載請(qǐng)注明原文鏈接:PHP-FPM的配置與優(yōu)化講解

侵權(quán)舉報(bào)/版權(quán)申訴



