Nginx 解決504錯(cuò)誤超時(shí)問題小結(jié)
問題發(fā)現(xiàn)
最近在做測試,發(fā)現(xiàn)基本有所有接口響應(yīng)時(shí)間過長的錯(cuò)誤反饋都是504。
分析
Nginx訪問出現(xiàn)504 Gateway Time-out,一般是由于程序執(zhí)行時(shí)間過長導(dǎo)致響應(yīng)超時(shí),例如程序需要執(zhí)行90秒,而nginx最大響應(yīng)等待時(shí)間為30秒,這樣就會出現(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配置
nginx.conf中,設(shè)置以下幾個(gè)參數(shù),增加超時(shí)時(shí)間
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_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 解決504超時(shí)問題小結(jié)的文章就介紹到這了,更多相關(guān)Nginx 504超時(shí)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx純配置實(shí)現(xiàn)日志實(shí)時(shí)上報(bào)的思路與方法
在很多時(shí)候我們都需要在頁面上實(shí)時(shí)查看nginx的日志輸出,所以下面這篇文章主要給大家介紹了關(guān)于Nginx純配置實(shí)現(xiàn)日志實(shí)時(shí)上報(bào)的思路與方法,需要的朋友可以參考下2021-12-12Nginx配置PATHINFO隱藏thinkphp index.php
這篇文章主要介紹了Nginx配置PATHINFO隱藏thinkphp index.php,本文直接給出配置示例,需要的朋友可以參考下2015-07-07nginx通過nginx_upstream_check_module實(shí)現(xiàn)后端健康檢查
nginx的健康檢查有兩種,一種是被動健康檢查,也就是nginx自帶健康檢查模塊ngx_http_upstream_module,另一種就是主動健康檢查,使用第三方模塊nginx_upstream_check_module,下面就來介紹一下,感興趣的可以了解一下2024-08-08永中文檔在線轉(zhuǎn)換預(yù)覽基于nginx配置部署方案
這篇文章主要為大家介紹了永中文檔在線轉(zhuǎn)換預(yù)覽基于nginx配置部署方案的實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Nginx流量拷貝ngx_http_mirror_module模塊使用方法詳解
這篇文章主要介紹了Nginx流量拷貝,Nginx專門提供了ngx_http_mirror_module模塊,用來實(shí)現(xiàn)流量拷貝。將生產(chǎn)環(huán)境的流量拷貝到預(yù)上線環(huán)境或測試環(huán)境2022-04-04Nginx + Tomcat實(shí)現(xiàn)請求動態(tài)數(shù)據(jù)和請求靜態(tài)資源的分離詳解
這篇文章主要給大家介紹了關(guān)于Nginx + Tomcat實(shí)現(xiàn)請求動態(tài)數(shù)據(jù)和請求靜態(tài)資源的分離的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07