解決Nginx+PHP-FPM出現(xiàn)502(Bad Gateway)錯(cuò)誤問(wèn)題 |
發(fā)布時(shí)間: 2014/8/14 10:41:41 |
Bad Gateway就是性能或資源不足所導(dǎo)致了,我們?yōu)g覽網(wǎng)頁(yè)時(shí)常常會(huì)碰到一些nginx環(huán)境出現(xiàn)這類(lèi)提醒了,下面我來(lái)給大家解決在使用nginx服務(wù)器時(shí)出來(lái)的502(Bad Gateway)錯(cuò)誤。 買(mǎi)了一臺(tái)云主機(jī)后,系統(tǒng)自動(dòng)給安裝了Nginx 1.6 + php 5.3.28 + mysql 5.5 把PHP程序放進(jìn)云服務(wù)器后,首次測(cè)試程序訪問(wèn)正常,速度正常。但是把程序放到線上訪問(wèn)后,會(huì)逐步發(fā)現(xiàn),訪問(wèn)的PHP頁(yè)面越來(lái)越慢,最后直接出現(xiàn)502 bad gateway問(wèn)題。 (在php-fpm.conf中,原本就設(shè)置了 pm = static 模式,并設(shè)置 pm.max_children = 128) 分析: 打開(kāi)nginx訪問(wèn)日志,訪問(wèn)量并不高,平均每秒也就10個(gè)不到的請(qǐng)求IP,所以,按理,這點(diǎn)訪問(wèn)量,不可能導(dǎo)致出現(xiàn)PHP請(qǐng)求過(guò)多,出現(xiàn)502的。
打開(kāi)php-fpm.conf日志,出現(xiàn)很多PHP警告問(wèn)題,再調(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進(jìn)程: ps -ef |grep -c php-fpm 22 剛開(kāi)始,訪問(wèn)PHP很快,然后越來(lái)越慢,再次查看進(jìn)程 ps -ef |grep -c php-fpm 28 從日志和進(jìn)程變化來(lái)看,可以斷定是PHP程序出現(xiàn)的問(wèn)題,是PHP請(qǐng)求太多造成的。大概就是PHP頁(yè)面中,調(diào)用了太多PHP的請(qǐng)求。把這個(gè)問(wèn)題告訴開(kāi)發(fā)后,開(kāi)發(fā)解決之后,服務(wù)器再?zèng)]出現(xiàn)502。 從上面配置來(lái)看我們是配置了一個(gè)請(qǐng)求數(shù)量了,當(dāng)然這個(gè)配置不是最佳的哦,如果你還碰到此類(lèi)問(wèn)題可以對(duì)參數(shù)進(jìn)行調(diào)整。 本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |