mysql查詢超時解決,out的情況怎么解決?
我常在Nginx服務器上發現502錯誤,很多情況下并非Nginx本身的問題。就以Nginx+PHP+MySQL這種架構說明。
Nginx本身設置等cgi接口返回的數據延時太短,要延長這個時間。如同前面說的,很多情況下并非Nginx本身的問題,這樣操作后常常并不能緩解問題。
此時,就要考慮對應cgi接口的配置,比如 php-fpm.conf 的配置,腳本執行時間的超時情況限制。這可以通過跟蹤php-fpm的 slow log 來排查,對相關代碼優化,減少延時。
另外很大的問題在MySQL數據庫這一塊,如果數據庫執行命令超時也會大延長php腳本的執行時間,導致 Nginx 等待超時。可以my.cnf的 slow log進行確認效能低下的sql語句是哪些,進行優化配置。
通過優化 php-fpm 及 MySQL的配置都大大減少Nginx的等待超時的情況。
以上是LNMP的架構為例進行說明。