Nginx出現(xiàn)504 Gateway Time-out的解決方法
問(wèn)題發(fā)現(xiàn)
客戶在系統(tǒng)中上傳文件的時(shí)候,如果上傳文件過(guò)大,因?yàn)橄到y(tǒng)需要讀取excel文件內(nèi)容,進(jìn)行處理,所以耗時(shí)比較長(zhǎng),導(dǎo)致等待超時(shí)。
分析
nginx訪問(wèn)出現(xiàn)504 Gateway Time-out,一般是由于程序執(zhí)行時(shí)間過(guò)長(zhǎng)導(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)用外部請(qǐng)求,而外部請(qǐng)求響應(yīng)超時(shí)。
- 連接數(shù)據(jù)庫(kù)失敗而沒(méi)有停止,死循環(huán)重新連。
出現(xiàn)這種情況,我們可以先優(yōu)化程序,縮短執(zhí)行時(shí)間。假如是文件解析這種本身就耗時(shí)比較長(zhǎng)的任務(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ā)送請(qǐng)求過(guò)程的超時(shí)時(shí)間,默認(rèn)值60秒 fastcgi_read_timeout fastcgi 進(jìn)程向 nginx 進(jìn)程發(fā)送輸出過(guò)程的超時(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Keepalived如何實(shí)現(xiàn)Nginx高可用
這篇文章主要介紹了Keepalived如何實(shí)現(xiàn)Nginx高可用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
Nginx配置Prometheus監(jiān)控的實(shí)現(xiàn)
本文主要介紹了Nginx配置Prometheus監(jiān)控的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
基于nginx實(shí)現(xiàn)上游服務(wù)器動(dòng)態(tài)自動(dòng)上下線無(wú)需reload的實(shí)現(xiàn)方法
這篇文章主要介紹了基于nginx實(shí)現(xiàn)上游服務(wù)器動(dòng)態(tài)自動(dòng)上下線無(wú)需reload,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
Nginx+Keepalived實(shí)現(xiàn)雙機(jī)主備的方法
這篇文章主要介紹了Nginx+Keepalived實(shí)現(xiàn)雙機(jī)主備的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
nginx開(kāi)啟https配置之后網(wǎng)頁(yè)無(wú)法訪問(wèn)的問(wèn)題處理解決
最近新購(gòu)服務(wù)器部署nginx之后按照之前的方式部署前端項(xiàng)目并配置https之后訪問(wèn)頁(yè)面無(wú)法顯示,本文主要介紹了nginx開(kāi)啟https配置之后網(wǎng)頁(yè)無(wú)法訪問(wèn)的問(wèn)題處理解決,具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11
解決Nginx 配置 proxy_pass 后 返回404問(wèn)題
這篇文章主要介紹了Nginx 配置 proxy_pass 后 返回404問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
Nginx 代理轉(zhuǎn)發(fā)阿里云OSS上傳的實(shí)現(xiàn)代碼
這篇文章主要介紹了Nginx 代理轉(zhuǎn)發(fā)阿里云OSS上傳的實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
Nginx之https證書(shū)配置實(shí)現(xiàn)
本文主要介紹了Nginx之https證書(shū)配置的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-12-12

