nginx服務器超時應該怎么辦?
在Nginx + PHP-FPM這種架構模式下,因為Nginx充當的是反向代理服務器,而超時大概率是由于PHP-FPM執行PHP腳本導致的超時,所以我們不建議修改Nginx的超時配置,保持默認即可。而我們的重點工作是要檢查什么原因導致PHP腳本執行慢的。
那該如何定位問題呢?只能用排除法來一步步排查,現在總結我的經驗以供大家參考:
1、開啟PHP錯誤輸出
首先我們要保證PHP錯誤開關是打開的,在php.ini中找到 display_errors 配置項設為 On ,然后重啟PHP-FPM使配置生效。
2、檢查代碼中是否設置了 set_time_limit(0) ,如果沒有可以加上這行代碼。
3、查看Nginx和PHP-FPM日志,看是否有錯誤拋出(比如緩沖區超出、PHP進程不夠等),如果有則依據錯誤信息對應解決。
4、找到慢請求URL對應的程序源碼,查看是否存在耗時操作,比如說:
程序里請求了外部網絡資源導致的超時,如:cURL、file_get_contents之類函數;
死循環;
數據庫、Redis鏈接超時等;
必要時借助xhprof來分析PHP腳本瓶頸。
通過以上步聚基本上是可以定位問題所在的,個人覺得PHP腳本執行慢導致超時的可能性較大。
以上就是我的觀點,對于這個問題大家是怎么看待的呢?歡迎在下方評論區交流 ~ 我是科技領域創作者,十年互聯網從業經驗,歡迎關注我了解更多科技知識!
上一篇php數組的索引格式
下一篇吃柿子有什么禁忌嗎