做網(wǎng)站的同學(xué)經(jīng)常會(huì)發(fā)現(xiàn)一些nginx服務(wù)器訪問時(shí)候提示504 Gateway Time-out錯(cuò)誤,而出現(xiàn)這種錯(cuò)誤有兩種情況,第一種可能是由于nginx默認(rèn)的fastcgi進(jìn)程響應(yīng)的緩沖區(qū)太小造成的, 這將導(dǎo)致fastcgi進(jìn)程被掛起, 如果你的fastcgi服務(wù)對(duì)這個(gè)掛起處理的不好, 那么最后就極有可能導(dǎo)致504 Gateway Time-out。
而第二種就有可能是PHP環(huán)境的配置問題,有些網(wǎng)站一直是使用nginx做代理后端的apache運(yùn)行php來提供服務(wù)。apache經(jīng)常會(huì)不定期不定時(shí)間的出現(xiàn)不能服務(wù)失去響應(yīng),然后nginx出現(xiàn)”504 Gateway Time-out”。
第一、網(wǎng)站程序的狀態(tài)
使用的是織夢(mèng)CMS,也就是我們常說的DEDECMS,是一款比較老牌且目前也已經(jīng)不再更新的免費(fèi)PHP CMS程序。這款程序也是很多新手比較喜歡的,除了他交互功能安全性差之外,但是在配置模板的時(shí)候還是相當(dāng)簡(jiǎn)單使用的,以前在公司做網(wǎng)站時(shí)候都是用的這個(gè)CMS程序。
DEDECMS程序尤為的適合內(nèi)容型網(wǎng)站,看到這個(gè)同學(xué)也是用的用來采集內(nèi)容的。我看到他后臺(tái)大約有幾萬的數(shù)據(jù),他都是采集的數(shù)據(jù),然后生成HTML頁面開始一會(huì)沒有問題,等會(huì)就出現(xiàn)504 Gateway time-out問題。
第二、配置問題
我們看到上面的問題,肯定很多朋友都猜測(cè)到問題所在,數(shù)據(jù)太多是不是服務(wù)器配置不夠。于是我看他的服務(wù)器配置,是1G1M的。但是如果你是采集數(shù)據(jù),甚至幾萬,十幾萬的數(shù)據(jù),可能采集慢慢入庫(kù)還沒有問題,如果是一次性的生產(chǎn)HTML肯定是不行的。
第三、解決方案嘗試
這里麥站網(wǎng)提出來幾個(gè)解決方案。一來是我們生成的時(shí)候,不要一次性全部生成,我們可以分欄目慢慢生成,如果你一次性幾萬的生成肯定是不行的。
其次,我們需要調(diào)優(yōu)NGINX配置,稍微提高下參數(shù)。
配置參數(shù)稍微調(diào)優(yōu),但是這個(gè)也不是完全的。我們需要做的就是升級(jí)服務(wù)器配置,你好歹需要4G3M左右的配置。
最后,這位同學(xué)是升級(jí)服務(wù)器配置且采用分欄目升級(jí)后解決問題的,暫時(shí)還沒出現(xiàn)504 Gateway time-out問題。
最后,一般遇到這樣的問題,我們采用JS調(diào)用廣告的模式,我們可以將廣告設(shè)置在JS中,這樣在需要調(diào)整的時(shí)候只需要變動(dòng)JS的內(nèi)容,就不要再生成HTML,一般大數(shù)據(jù)的HTML頁面是很少去全站生成靜態(tài)的。