- 編程問答
- 答案列表
HTTP 504 - Gateway Timeout 網關超時[朗讀]
錯誤說明:網關超時,服務器響應時間,達到超出設定的範圍原因1:後端電腦之間 ip 通訊緩慢而產生解決辦法:如果您的 web 伺服器由某一網站託管,只有負責那個網站設置的人員才能解決這個問題。原因2:由於nginx默認的fastcgi進程響應的緩衝區太小造成的錯誤解決辦法:一般默認的fastcgi進程響應的緩衝區是8k,這時可以設置大一點,在nginx.conf里,加入:fastcgi_buffers 8 128k這表示設置fastcgi緩衝區為8塊128k大小的空間。當然如果在進行某一項即時的操作,可能需要nginx的超時參數調大點,例如設置成60秒:send_timeout 60;經過這兩個參數的調整,一般不會再提示「504 gateway time-out」錯誤,問題基本解決。原因3:php環境的配置問題解決辦法:更改php-fpm的幾處配置: 把max_children由之前的10改為現在的30,這樣就可以保證有充足的php-cgi進程可以被使用;把request_terminate_timeout由之前的0s改為60s,這樣php-cgi進程 處理腳本的超時時間就是60秒,可以防止進程都被掛起,提高利用效率。接著再更改nginx的幾個配置項,減少fastcgi的請求次數,儘量維持buffers不變: fastcgi_buffers由 4 64k 改為 2 256k;fastcgi_buffer_size 由 64k 改為 128k;fastcgi_busy_buffers_size 由 128k 改為 256k;fastcgi_temp_file_write_size 由 128k 改為 256k。重新加載php-fpm和nginx的配置,再次測試,如果沒有出現「504 gateway time-out」錯誤,問題解決。
加入收藏