網(wǎng)站502與504錯誤分析
在使用Nginx時(shí),經(jīng)常會碰到502 Bad Gateway和504 Gateway Time-out錯誤,下面小編就來分析下這兩種常見錯誤的原因和解決方案。

網(wǎng)站502與504錯誤分析
一. 戲說
不管你是做運(yùn)維還是做開發(fā),哪怕你是游客,時(shí)不時(shí)會遇到502 Bad Gateway或504 Gateway Time-out。出現(xiàn)這頁面,把服務(wù)重啟下,再實(shí)在不行重啟下服務(wù)器,問題就解決了,但是,這問題還是會困擾著你,特別是做運(yùn)維的人員。夜黑風(fēng)高正酣睡 時(shí),一個(gè)電話響起,讓你重啟服務(wù)或IISRESET,肯定是極大不爽,立馬要問候他媽了。呵呵,本文總結(jié)502與504故障分析與解決方法。
二. 狀態(tài)碼解釋
502 Bad Gateway:作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請求時(shí),從上游服務(wù)器接收到無效的響應(yīng)。
504 Gateway Time-out:作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請求時(shí),未能及時(shí)從上游服務(wù)器(URI標(biāo)識出的服務(wù)器,例如HTTP、FTP、LDAP)或者輔助服務(wù)器(例如DNS)收到響應(yīng)。
三. 502 Bad Gateway原因分析
將請求提交給網(wǎng)關(guān)如php-fpm執(zhí)行,但是由于某些原因沒有執(zhí)行完畢導(dǎo)致php-fpm進(jìn)程終止執(zhí)行。說到此,這個(gè)問題就很明了了,與網(wǎng)關(guān)服務(wù)如php-fpm的配置有關(guān)了。
php-fpm.conf配置文件中有兩個(gè)參數(shù)就需要你考慮到,分別是max_children和request_terminate_timeout。
max_children最大子進(jìn)程數(shù),在高并發(fā)請求下,達(dá)到php-fpm最大響應(yīng)數(shù),后續(xù)的請求就會出現(xiàn)502錯誤的。可以通過netstat命令來查看當(dāng)前連接數(shù)。
request_terminate_timeout設(shè)置單個(gè)請求的超時(shí)終止時(shí)間。還應(yīng)該注意到php.ini中的max_execution_time參數(shù)。當(dāng)請求終止時(shí),也會出現(xiàn)502錯誤的.。
當(dāng)積累了大量的php請求,你重啟php-fpm釋放資源,但一兩分鐘不到,502又再次呈現(xiàn),這是什么原因?qū)е碌哪兀?這時(shí)還應(yīng)該考慮到數(shù)據(jù)庫,查看下數(shù)據(jù)庫進(jìn)程是否有大量的locked進(jìn)程,數(shù)據(jù)庫死鎖導(dǎo)致超時(shí),前端終止了繼續(xù)請求,但是SQL語句還在等待釋放鎖,這時(shí) 就要重啟數(shù)據(jù)庫服務(wù)了或kill掉死鎖SQL進(jìn)程了。
對于長時(shí)間的請求可以考慮使用異步方式,可以參閱《關(guān)于PHP實(shí)現(xiàn)異步操作的研究》。
四. 504 Gateway Time-out原因分析
504錯誤一般是與nginx.conf 配置有關(guān)了。主要與以下幾個(gè)參數(shù)有關(guān):fastcgi_connect_timeout、fastcgi_send_timeout、 fastcgi_read_timeout、fastcgi_buffer_size、fastcgi_buffers、 fastcgi_busy_buffers_size、fastcgi_temp_file_write_size、 fastcgi_intercept_errors。特別是前三個(gè)超時(shí)時(shí)間。如果fastcgi緩沖區(qū)太小會導(dǎo)致fastcgi進(jìn)程被掛起從而演變?yōu)?504錯誤。
五. 小結(jié)
總而言之,502錯誤主要從四個(gè)方向入手:
1. max_children
2. request_terminate_timeout、max_execution_time
3. 數(shù)據(jù)庫
4. 網(wǎng)關(guān)服務(wù)是否啟動如php-fpm
504錯誤主要查看nginx.conf關(guān)于網(wǎng)關(guān)如fastcgi的配置。
【網(wǎng)站502與504錯誤分析】相關(guān)文章:
分析英語寫作的錯誤原因03-08
英語寫作常見錯誤與分析03-09
考研英語寫作常見錯誤分析06-02
雅思寫作中常見錯誤分析05-05
雅思寫作常見的語法錯誤分析07-17
初中數(shù)學(xué)學(xué)生解題錯誤的原因分析08-31
四級英語寫作見錯誤分析09-01