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