Nginx出現(xiàn)504 Gateway Time-out的解決方法
問題發(fā)現(xiàn)
客戶在系統(tǒng)中上傳文件的時(shí)候,如果上傳文件過大,因?yàn)橄到y(tǒng)需要讀取excel文件內(nèi)容,進(jìn)行處理,所以耗時(shí)比較長,導(dǎo)致等待超時(shí)。
分析
nginx訪問出現(xiàn)504 Gateway Time-out,一般是由于程序執(zhí)行時(shí)間過長導(dǎo)致響應(yīng)超時(shí),例如程序需要執(zhí)行90秒,而nginx最大響應(yīng)等待時(shí)間為30秒,這樣就會(huì)出現(xiàn)超時(shí)。
通常有以下幾種情況導(dǎo)致
- 程序在處理大量數(shù)據(jù),導(dǎo)致等待超時(shí)。
- 程序中調(diào)用外部請求,而外部請求響應(yīng)超時(shí)。
- 連接數(shù)據(jù)庫失敗而沒有停止,死循環(huán)重新連。
出現(xiàn)這種情況,我們可以先優(yōu)化程序,縮短執(zhí)行時(shí)間。假如是文件解析這種本身就耗時(shí)比較長的任務(wù),則可以調(diào)大nginx超時(shí)限制的參數(shù),使程序可以正常執(zhí)行。
修改nginx的配置
http { ... fastcgi_connect_timeout 3000; fastcgi_send_timeout 3000; fastcgi_read_timeout 3000; ··· }
fastcgi_connect_timeout fastcgi連接超時(shí)時(shí)間,默認(rèn)60秒 fastcgi_send_timeout nginx 進(jìn)程向 fastcgi 進(jìn)程發(fā)送請求過程的超時(shí)時(shí)間,默認(rèn)值60秒 fastcgi_read_timeout fastcgi 進(jìn)程向 nginx 進(jìn)程發(fā)送輸出過程的超時(shí)時(shí)間,默認(rèn)值60秒
server { listen 8888; location / { proxy_pass http://pdfs; proxy_connect_timeout 18000; proxy_send_timeout 18000; proxy_read_timeout 18000; proxy_set_header Host 172.10.10.35:8081; proxy_set_header X-Forwarded-Scheme $scheme; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://172.10.10.35:8083/demo/; } }
- proxy_connect_timeout 1800s;#nginx跟后端服務(wù)器連接超時(shí)時(shí)間(代理連接超時(shí))
- proxy_send_timeout 1800s;#后端服務(wù)器數(shù)據(jù)回傳時(shí)間(代理發(fā)送超時(shí))
- proxy_read_timeout 1800s;#連接成功后,后端服務(wù)器響應(yīng)時(shí)間(代理接收超時(shí))
到此這篇關(guān)于Nginx出現(xiàn)504 Gateway Time-out的解決方法的文章就介紹到這了,更多相關(guān)Nginx 504 Gateway Time-out內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nginx 流量控制以及訪問控制的實(shí)現(xiàn)
這篇文章主要介紹了nginx 流量控制以及訪問控制的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08Nginx服務(wù)器的SSL證書配置以及對SSL的反向代理配置
這篇文章主要介紹了Nginx服務(wù)器的SSL證書配置以及對SSL的反向代理配置方法,通常在開啟全站HTTPS時(shí)會(huì)用到,需要的朋友可以參考下2016-01-01實(shí)現(xiàn)Nginx中使用PHP-FPM時(shí)記錄PHP錯(cuò)誤日志的配置方法
最近在本地搭建的LNMP的開發(fā)環(huán)境。為了開發(fā)的時(shí)候不影響前端的正常開發(fā)就屏蔽的PHP里面php.ini中的一些錯(cuò)誤提示。但是這樣一來,就影響到了后端開發(fā)的一些問題比如不能及時(shí)調(diào)試開發(fā)中的一些問題2014-05-05讓VIM支持Nginx .conf文件語法高亮顯示功能的方法
這篇文章主要給大家介紹了關(guān)于讓VIM支持Nginx .conf文件語法高亮顯示功能的方法,文中分別介紹了手動(dòng)修改和自動(dòng)化腳本兩種方法的實(shí)現(xiàn),都給出了詳細(xì)的示例代碼,需要的朋友可以參考借鑒,下面來一起看看吧。2017-07-07