您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)PHP與NGINX中499問題的解決方法的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
nginx php 499錯誤是因為服務(wù)器端處理的時間過長,客戶端斷開等待狀態(tài),其解決辦法就是在linux上找到“php-fpm.conf”,并在最下方增加“pm=dynamic”等配置即可。
PHP與NGINX 499、502問題處理
nginx出現(xiàn)502有很多原因,但大部分原因可以歸結(jié)為資源數(shù)量不夠用,
也就是說后端php-fpm處理有問題,nginx將正確的客戶端請求發(fā)給了后端的php-fpm進程,
但是因為php-fpm進程的問題導致不能正確解析php代碼,最終返回給了客戶端502錯誤。
服務(wù)器出現(xiàn)502的原因是連接超時 我們向服務(wù)器發(fā)送請求 由于服務(wù)器當前鏈接太多,導致服務(wù)器方面無法給于正常的響應(yīng),產(chǎn)生此類報錯
因此如果你服務(wù)器并發(fā)量非常大,那只能先增加機器,然后按以下方式優(yōu)化會取得更好效果;但如果你并發(fā)不大卻出現(xiàn)502,一般都可以歸結(jié)為配置問題,腳本超時問題。
最終的問題還是程序代碼本身,處理時間過長、資源無法回執(zhí)!所以注意代碼優(yōu)化!
499對應(yīng)的是 “client has closed connection”。這很有可能是因為服務(wù)器端處理的時間過長,客戶端斷開等待狀態(tài)了。
如果兩次提交post過快就會出現(xiàn)499的情況,nginx認為是不安全的連接,主動拒絕了客戶端的連接!
還有就是超時!
大多說都是修改proxy_ignore_client_abort on,表示代理服務(wù)端不要主要主動關(guān)閉客戶端連接這是一種情況。但是并非解決問題的方法!
以下是我通過fpm來解決這個問題
控制子進程,選項有static和dynamic。如果選擇static,則由pm.max_children指定固定的子進程數(shù)。對于專用服務(wù)器,pm值可以設(shè)置為static。如果選擇dynamic,則由一系列參數(shù)控制 即動態(tài)進程。
在linux上我們找到php-fpm.conf在最下方增加以下配置
pm = dynamic 動態(tài)路由選項配置 pm.max_children = 16 子進程最大數(shù) pm.start_servers = 4 啟動時的進程數(shù) pm.min_spare_servers = 2 空閑進程數(shù)最小值,如果空閑進程小于此值,則創(chuàng)建新子進程 pm.max_spare_servers = 16 保證空閑進程數(shù)最大值,如果空閑進程大于此值,此進行清理
感謝各位的閱讀!關(guān)于“PHP與NGINX中499問題的解決方法”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。