熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

nginx 504 Gateway Time-out錯誤解決辦法

2022-06-13   來源: Java高級技術 
我們經常會發現大量的nginx服務器訪問時會提示nginx Gateway Timeout錯誤了下面我來總結了一些解決辦法有需要了解的同學可進入參考

一般看來 這種情況可能是由於nginx默認的fastcgi進程響應的緩沖區太小造成的 這將導致fastcgi進程被掛起 如果你的fastcgi服務對這個掛起處理的不好 那麼最後就極有可能導致 Gateway Timeout
現在的網站 尤其某些論壇有大量的回復和很多內容的 一個頁面甚至有幾百K
默認的fastcgi進程響應的緩沖區是K 我們可以設置大點

在nginxconf裡 加入:

fastcgi_buffers k

這表示設置fastcgi緩沖區為×k
當然如果您在進行某一項即時的操作 可能需要nginx的超時參數調大點 例如設置成秒:

send_timeout ;

我只是調整了這兩個參數 結果就是沒有再顯示那個超時 可以說效果不錯

另一篇文章

首先是更改phpfpm的幾處配置

把max_children由之前的改為現在的這樣就可以保證 有充足的phpcgi進程可以被使用

把request_terminate_timeout由之前的s改為s這樣phpcgi進程 處理腳本的超時時間就是可以防止進程都被掛起提高利用效率

接著再更改nginx的幾個配置項減少FastCGI的請求次 數盡量維持buffers不變

  fastcgi_buffers由 k 改為 k
  fastcgi_buffer_size 由 k 改為 K
  fastcgi_busy_buffers_size 由 K 改為 K
  fastcgi_temp_file_write_size 由 K 改為 K

好了重新加載phpfpm和nginx的配置再次測試至今兩周時間內沒有再出現 Gateway Timeout的情況算是達到效果了

另外phpfpm的默認靜態處理方式會使得phpcgi的進程長期占用內存而無法釋放這也是導致nginx出錯的原因之一因此可以將phpfpm的處理方式改成apache模式
apachelike



From:http://tw.wingwit.com/Article/program/Java/gj/201405/30821.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.