nginx 504 Gateway Time-out錯誤解決方法
一般看來, 這種情況可能是由于nginx默認的fastcgi進程響應(yīng)的緩沖區(qū)太小造成的, 這將導致fastcgi進程被掛起, 如果你的fastcgi服務(wù)對這個掛起處理的不好, 那么最后就極有可能導致504 Gateway Time-out
現(xiàn)在的網(wǎng)站, 尤其某些論壇有大量的回復和很多內(nèi)容的, 一個頁面甚至有幾百K
默認的fastcgi進程響應(yīng)的緩沖區(qū)是8K, 我們可以設(shè)置大點
在nginx.conf里, 加入:
fastcgi_buffers 8 128k
這表示設(shè)置fastcgi緩沖區(qū)為8×128k
當然如果您在進行某一項即時的操作, 可能需要nginx的超時參數(shù)調(diào)大點, 例如設(shè)置成60秒:
send_timeout 60;
我只是調(diào)整了這兩個參數(shù), 結(jié)果就是沒有再顯示那個超時, 可以說效果不錯
另一篇文章
首先是更改php-fpm的幾處配置:
把max_children由之前的10改為現(xiàn)在的30,這樣就可以保證 有充足的php-cgi進程可以被使用;
把request_terminate_timeout由之前的0s改為60s,這樣php-cgi進程 處理腳本的超時時間就是60秒,可以防止進程都被掛起,提高利用效率。
接著再更改nginx的幾個配置項,減少FastCGI的請求次 數(shù),盡量維持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的配置,再次測試,至今兩周時間內(nèi)沒有再出現(xiàn)504 Gateway Time-out的情況,算是達到效果了。
另外,php-fpm的默認靜態(tài)處理方式會使得php-cgi的進程長期占用內(nèi)存而無法釋放,這也是導致nginx出錯的原因之一,因此可以將php-fpm的處理方式改成apache模式。
apache-like
相關(guān)文章
nginx反向代理proxy_pass遇到的死循環(huán)問題
這篇文章主要介紹了nginx反向代理proxy_pass遇到的死循環(huán)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
Debian系統(tǒng)下為PHP程序配置Nginx服務(wù)器的基本教程
這篇文章主要介紹了Debian系統(tǒng)下為PHP程序配置Nginx服務(wù)器的基本教程,這里使用到了FastCGI和php-fpm,需要的朋友可以參考下2015-12-12
Keepalived實現(xiàn)Nginx負載均衡高可用的示例代碼
這篇文章主要介紹了Keepalived實現(xiàn)Nginx負載均衡高可用的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04

