如何解決“504 Gateway Time out”錯(cuò)誤
夢(mèng)桃桑
我們?cè)谠L問(wèn)大流量網(wǎng)站或者運(yùn)營(yíng)有較多數(shù)據(jù)的網(wǎng)站時(shí)候,偶爾會(huì)出現(xiàn)504 Gateway Time-out錯(cuò)誤,這多是網(wǎng)站服務(wù)器配置不當(dāng)導(dǎo)致的,下面分享一下504GatewayTime-out錯(cuò)誤的解決方法。
代碼釋義
504 Gateway Time-out就是字面意思,可以理解為網(wǎng)頁(yè)請(qǐng)求超時(shí),也就是瀏覽網(wǎng)站網(wǎng)頁(yè)所發(fā)出的請(qǐng)求沒(méi)有反應(yīng)或者未響應(yīng),在網(wǎng)站程序?qū)用鎭?lái)說(shuō),就是請(qǐng)求未能夠執(zhí)行相應(yīng)的PHP-CGI程序,或者PHP-CGI程序未能做出相應(yīng)的處理,又或者是CGI程序的響應(yīng)處理結(jié)果未能夠反饋到瀏覽器或者未能及時(shí)反饋到瀏覽器。
報(bào)錯(cuò)背景
504 Gateway Time-out錯(cuò)誤多是存在于Nginx網(wǎng)站服務(wù)器環(huán)境下,多與nginx.conf與php-fpm.conf設(shè)置是否正確合理有關(guān)。解決方法就是根據(jù)網(wǎng)站服務(wù)器性能及網(wǎng)站流量等諸多因素整合考慮,正確合理的設(shè)置niginx.conf和php-fpm.conf配置。
解決方法
進(jìn)行正確合理nginx.conf配置,我們需要首先了解和清楚我們網(wǎng)站服務(wù)器的配置性能,包括CPU、內(nèi)存等,并對(duì)網(wǎng)站服務(wù)器進(jìn)行必要的性能測(cè)試(可參考:vps主機(jī)性能測(cè)試方法詳解),從而準(zhǔn)確的掌握網(wǎng)站服務(wù)器自身性能狀況;
其次,是通過(guò)網(wǎng)站統(tǒng)計(jì)代碼的添加,分析一段時(shí)間內(nèi)網(wǎng)站流量狀況,比如:CNZZ站長(zhǎng)統(tǒng)計(jì)等,掌握網(wǎng)站日流量及PHP-CGI請(qǐng)求的大概情況;
最后,根據(jù)我們掌握的服務(wù)器性能狀況及網(wǎng)絡(luò)流量情況,合理的對(duì)nginx.conf中的下列字句進(jìn)行合理正確的設(shè)置?!?/h2>
fastcgi_connect_timeout300s;
fastcgi_send_timeout300s;
fastcgi_read_timeout300s;
fastcgi_buffer_size128k;
fastcgi_buffers8128k;#8128
fastcgi_busy_buffers_size256k;
fastcgi_temp_file_write_size256k;
fastcgi_intercept_errorson;
還有就是php-fpm.conf中max_children與request_terminate_timeout兩個(gè)重要參數(shù)的設(shè)置。這兩個(gè)參數(shù)的設(shè)置需要我們根據(jù)PHP程序情況及服務(wù)器帶寬狀況綜合考慮并計(jì)算出合理準(zhǔn)確的值,才能夠避免504 Gateway Time-out或者其他CGI無(wú)響應(yīng)錯(cuò)誤的出現(xiàn)。