寫日誌之前先copy一段nginx502的原因,從某網看到如下,然而這並不是重點,最重要還是看博主手敲的東西。
一、nginx 502錯誤排查
nginx 502 bad gateway錯誤是fastcgi有問題,造成nginx
502錯誤的可能性比較多。將網上找到的一些和502 bad
gateway錯誤有關的問題和排查方法列一下,先從fastcgi配置入手:
1.fastcgi程序是否已經啟動
2.fastcgi worker程序數是否不夠
執行 netstat -anpo | grep 「php-cgi」 | wc -l
判斷是否接近fastcgi程序,接近配置檔案中設定的數值,表明worker程序數設定太少
3.fastcgi執行時間過長
根據實際情況調高以下引數值
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
4.fastcgi buffer不夠
nginx
和apache一樣,有前端緩衝限制,可以調整緩衝引數
fastcgi_buffer_size 32k;
fastcgi_buffers 8 32k;
5.proxy buffer不夠
如果你用了proxying,調整
proxy_buffer_size 16k;
proxy_buffers 4 16k;
參見:6.https**配置錯誤
正確的配置方法
}當然,還要看你後端用的是哪種型別的fastcgi,我用過的有php-fpm,流量約為單台機器40萬pv(動態頁面),
現在基本上沒有碰到502。
7.php指令碼執行時間過長
將php-fpm.conf的0s的0s改成乙個時間
~~~~~~~~~~~~~~~~~~~~~~~~~~~華麗麗的分割線~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
博主遇到的問題是因為**中有乙個引數通過引用傳遞,然後訪問之後直接502,博主看到此資訊,第一時間是直接把display_errors開啟,
然後我就有疑問了為什麼開啟了錯誤顯示,就不502了,只是有些e_strict的警告,之後經過了一輪輪除錯,仍舊沒有辦法之後原因。
無可奈何之後檢視了nginx的錯誤截圖如下。當時想這尼瑪不是php fastcgi的報錯,為什麼會出現在nginx的錯誤日誌裡面,這感覺不怎麼科學,苦思冥想
再經過幾輪傷痛無果的除錯,依然感覺無力,只能先暫告一段落。
作為乙個幸運的程式設計師,不知道動了那根筋想倒騰一下之後本地虛擬機器環境中一直不寫錯誤日誌檔案的問題,配置是沒有問題,就是不寫錯誤日誌。(各位看官不要吐槽,因為博主平常都是
直接頁面顯示錯誤加xdebug,所以覺得無所謂,不寫關我毛毛雨的事情,不虛。)博主慧眼加高等智慧型的大腦(這個時**博主必須加點逼格)覺得應該是檔案許可權的問題,然後果斷來一下
chmod 777高超技能,重啟php-fpm,來段錯誤**測試了一下,尼瑪還是如預期寫入了錯誤日誌檔案。此刻回想起來上午的問題,總感覺輸出的錯誤警告神馬會不會和寫入日誌的一樣。覺
得那就裸衣幹,tail一下錯誤日誌,遮蔽display,擼一下**,尼瑪此刻竟然不報502了,完美執行,錯誤日誌如期寫入日誌檔案,不科學啊,開啟nginx的錯誤日誌再擼一發發現nginx沒有了
錯誤。好吧!感覺問題找到了關於502錯誤是因為php的錯誤日誌許可權問題,沒有辦法寫入,然後直接拋給了cgi,所以nginx就502了。至於為什麼會下拋給cgi,這個我也不懂,別問我,懂的人後面
過幾招。
哎呦,不錯哦。此段裝逼路程結束。謝謝tvb,謝謝爸媽,謝謝。
針對nginx的502錯誤
2019年8月12日21點32分記 乙個nginx反向 的502錯誤 今天部署專案時,發現了這個錯誤,嘗試了多種解決方法,最終解決,特書此記。php fpm有乙個引數 max requests,該引數指明了,每個children最多處理多少個請求後便會被關閉,預設的設定是500。因為php是把請求輪...
裝逼者的盛會 QCon
近來qcon又在北京開大會了 一大群裝逼者紛紛亮相 其實qcon嚐到技術會議收費的甜頭後就開始頻繁開會 幾乎上萬的會費誰來交?當然是幻想提高自己名氣的企業了 雙方可能都認為這麼做對自己都是促進作用 不過說來說去,無非就那幾家企業 不過就是個小圈子 這些人討論的所謂技術 主要偏伺服器端架構 其實都是國...
立即執行函式的裝逼寫法
常用的兩種寫法估計大家都知道。第一種寫法 function 第二種寫法 function 第三種寫法的話,一般人都是有所了解。第三種符號寫法 function function function 第四種寫法的有的人也算上了第三種寫法的擴充套件,也算符號寫法。個人理解為函式表示式的立即執行 第四種寫法...