綠色資源網:您(nín)身邊最(zuì)放(fàng)心的安全(quán)下載站! 最新軟件|熱門排行|軟件分類|軟件專(zhuān)題|廠商(shāng)大全

綠色資源網

技術教程(chéng)
您的位置(zhì):首頁服務器類Web服(fú)務器 → Nginx 504 Gateway Time-out問題的(de)解決經曆

Nginx 504 Gateway Time-out問題的解(jiě)決經曆

我要評論 2012/11/29 20:56:20 來源:綠色資(zī)源(yuán)網 編輯:www.chithemodel.com [ 中(zhōng) ] 評論:0 點擊:342次

在CentOS下配置(zhì)lnmp組合(hé)基(jī)本上用的都是同(tóng)樣的配置文件,一直都沒出(chū)現(xiàn)過問題,可最(zuì)近在一個(gè)vps上(shàng)安裝同樣的環境之後,網站在線10多人就出 現(xiàn)了打開速度非常緩慢的情況,有好幾次都是直接(jiē)達到了nginx中設置的腳(jiǎo)本最大超時時間300秒,結果導致nginx往客戶端瀏覽器發送了一(yī)個504 Gateway Time-out的錯(cuò)誤(wù)代碼,分析了之(zhī)後改動了幾處配置文件,終於避免了該情況的出現。

從錯(cuò)誤代碼基(jī)本可以確定跟nginx本身無關,主要是提交給php-fpm的請(qǐng)求未能正確反(fǎn)饋而導致,一般情況(kuàng)下,提交(jiāo)動態請求(qiú)的時候,nginx會直接把 請求轉交(jiāo)給php-fpm,而php-fpm再分配php-cgi進程來(lái)處理相關的(de)請求,之後再依次(cì)返回,最後由nginx把結(jié)果反饋給客戶端(duān)瀏覽器,但 我這個vps目前跑的是個(gè)純php應用內容,實際上用(yòng)戶(hù)所有的(de)請求都是php請求,有(yǒu)的耗費時間比較久,php-cgi進程(chéng)就(jiù)一(yī)直都被用滿,而php- fpm本身(shēn)的配置文(wén)件(jiàn)隻打開了10組php-cgi進程(chéng),這樣的話在線用戶稍微多的話就會導致請求(qiú)無法被正常處理而出錯。

大概分析出(chū)了(le)原 因,下麵(miàn)做(zuò)就(jiù)比較(jiào)容易了(le),首先是更(gèng)改php-fpm的幾處配(pèi)置:

把max_children由之前的(de)10改為現在的30,這樣(yàng)就可以保(bǎo)證 有充足的php-cgi進程可以被使(shǐ)用;

把request_terminate_timeout由之(zhī)前(qián)的(de)0s改為60s,這樣php-cgi進(jìn)程 處理腳本的超時時(shí)間就是60秒,可以防止進(jìn)程都(dōu)被掛起,提高利用效率。

接著再更改nginx的幾個配(pèi)置項,減少FastCGI的請求次 數,盡量維(wéi)持buffers不變:

  fastcgi_buffers由 4 64k 改為 2 256k;
  fastcgi_buffer_size 由 64k 改為 128K;
  fastcgi_busy_buffers_size 由 128K 改(gǎi)為 256K;
  fastcgi_temp_file_write_size 由(yóu) 128K 改為 256K。

好了(le),重新加(jiā)載(zǎi)php-fpm和(hé)nginx的配置(zhì),再次測(cè)試,至今兩周時間內沒有(yǒu)再出現504 Gateway Time-out的情(qíng)況,算是達到效果了。

另外,php-fpm的默(mò)認靜態處(chù)理方式會使(shǐ)得(dé)php-cgi的進程長期占(zhàn)用(yòng)內存(cún)而無法釋放,這也(yě)是導致(zhì)nginx出(chū)錯(cuò)的原因之一,因此可以將php-fpm的處理方(fāng)式改成apache模式。

<value name=”style”>apache-like</value>

從更改完畢到現在的測試表明上述方式的效果還是很明顯的,並沒有發現一次Nginx502 bad gateway或504 Gateway Time-out錯誤。當然,如果(guǒ)你的VPS或者服務器的性能足夠好可以根據具體情況不(bú)必做無謂的(de)改動。

關鍵詞:Nginx

閱讀本文後您有什麽感想? 已有 人給出評(píng)價(jià)!

  • 0 歡迎喜(xǐ)歡
  • 0 白(bái)癡
  • 0 拜托(tuō)
  • 0 哇
  • 0 加油
  • 0 鄙視