nginx訪問返回504問題及解決
nginx訪問返回504
現(xiàn)象
nginx后端代理為報表服務(wù),錯誤日志大量出現(xiàn)上游服務(wù)超時,頁面訪問也會出現(xiàn)504返回,查看后發(fā)現(xiàn)服務(wù)本身沒問題,問題著重在nginx本身,報表服務(wù)本身屬于大查詢,返回較慢。
nginx默認本身后端超時為60S,大查詢的返回大于60S所以會有幾率出現(xiàn)504請求失敗
報錯
2022/08/05 13:00:24 [error] 3389#e: *1092213 upstream timed out (110: Connection timed out) while reading upstream, client: 10.6. 18.19, server: localhost, request: “POST /rcenter/rpt/api/showReport HTTP/1.1”, upstream: “http://10.6.6.65:8880/rcenter/rpt/api/showReport” host: “10.6.6.67”
處理
增加后端超時時長參數(shù)
參數(shù) | 詳解 |
---|---|
proxy_connect_timeout | 與后端/上游服務(wù)器建立連接的超時時間 |
proxy_send_timeout | 與后端/上游服務(wù)器發(fā)送請求的超時時間 |
proxy_read_timeout | 與后端/上游服務(wù)器讀取響應的超時時間 |
server { listen 80; server_name localhost; location / { root html; proxy_pass http://report; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600;
nginx504網(wǎng)關(guān)超時解決思路
環(huán)境
前端:nginx作代理
后端:nginx+php(耳朵分發(fā)服務(wù))
問題:整套服務(wù)搭建完成之后,將打包好的ios包進行上傳到分發(fā)服務(wù)器時,包傳遞完畢之后頁面無法自動跳轉(zhuǎn)
上述進度條走完之后,頁面無法自動跳轉(zhuǎn)。
解決思路
剛開始,以為是php的代碼設(shè)置了超時時間,然后各種改代碼,可是沒什么卵用;然后以為是php有問題,然后修改php的超時時間,也沒什么卵用。
最后,F(xiàn)12查看頁面具體情況,發(fā)現(xiàn):
原來是網(wǎng)關(guān)超時,應該是代理的nginx和后端nginx之間傳輸數(shù)據(jù)時發(fā)生超時。
最后,在前端nginx的配置文件中加入如下配置:
proxy_read_timeout 300
說明 該指令設(shè)置與代理服務(wù)器的讀超時時間。它決定了nginx會等待多長時間來獲得請求的響應。
這個時間不是獲得整個response的時間,而是兩次reading操作的時間。
如果后端有大文件傳輸?shù)男枨髸r,需要將此值調(diào)大一些。
proxy_send_timeout 300
說明 這個指定設(shè)置了發(fā)送請求給upstream服務(wù)器的超時時間。
超時設(shè)置不是為了整個發(fā)送期間,而是在兩次write操作期間。
如果超時后,upstream沒有收到新的數(shù)據(jù),nginx會關(guān)閉連接
以上兩個參數(shù)默認是60s超時,,由于上傳的ios包需要的時間超過了60s,導致網(wǎng)關(guān)超時。
至此,問題得到解決。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SQL操作Pandas?DataFrame的三種方式示例詳解
這篇文章主要為大家介紹了SQL操作Pandas?DataFrame的三種方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08Nginx漏洞整改實現(xiàn)限制IP訪問&隱藏nginx版本信息
本文主要介紹了Nginx漏洞整改實現(xiàn)限制IP訪問&隱藏nginx版本信息,通過配置Nginx的ACL,可以輕松實現(xiàn),下面就來具體介紹一下,感興趣的可以了解一下2024-03-03Nginx中報錯:Permission denied與Connection refused的解決
這篇文章主要給大家介紹了在Nginx中報錯:13: Permission denied與111: Connection refused的解決方法,文中介紹的非常詳細,相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-04-04