解決Nginx+PHP-FPM出現(xiàn)502(Bad Gateway)錯誤問題 |
發(fā)布時間: 2014/8/14 10:41:41 |
Bad Gateway就是性能或資源不足所導致了,我們?yōu)g覽網(wǎng)頁時常常會碰到一些nginx環(huán)境出現(xiàn)這類提醒了,下面我來給大家解決在使用nginx服務器時出來的502(Bad Gateway)錯誤。 買了一臺云主機后,系統(tǒng)自動給安裝了Nginx 1.6 + php 5.3.28 + mysql 5.5 把PHP程序放進云服務器后,首次測試程序訪問正常,速度正常。但是把程序放到線上訪問后,會逐步發(fā)現(xiàn),訪問的PHP頁面越來越慢,最后直接出現(xiàn)502 bad gateway問題。 (在php-fpm.conf中,原本就設置了 pm = static 模式,并設置 pm.max_children = 128) 分析: 打開nginx訪問日志,訪問量并不高,平均每秒也就10個不到的請求IP,所以,按理,這點訪問量,不可能導致出現(xiàn)PHP請求過多,出現(xiàn)502的。
打開php-fpm.conf日志,出現(xiàn)很多PHP警告問題,再調(diào)整php-fpm的pm模式為pm = dynamic, pm.start_servers = 20pm.min_spare_servers = 5 pm.max_spare_servers = 35 pm.max_requests = 10000 重啟php-fpm后,用ps查看php進程: ps -ef |grep -c php-fpm 22 剛開始,訪問PHP很快,然后越來越慢,再次查看進程 ps -ef |grep -c php-fpm 28 從日志和進程變化來看,可以斷定是PHP程序出現(xiàn)的問題,是PHP請求太多造成的。大概就是PHP頁面中,調(diào)用了太多PHP的請求。把這個問題告訴開發(fā)后,開發(fā)解決之后,服務器再沒出現(xiàn)502。 從上面配置來看我們是配置了一個請求數(shù)量了,當然這個配置不是最佳的哦,如果你還碰到此類問題可以對參數(shù)進行調(diào)整。 本文出自:億恩科技【mszdt.com】 |