Nginx 解決504錯誤超時問題小結
問題發(fā)現(xiàn)
最近在做測試,發(fā)現(xiàn)基本有所有接口響應時間過長的錯誤反饋都是504。
分析
Nginx訪問出現(xiàn)504 Gateway Time-out,一般是由于程序執(zhí)行時間過長導致響應超時,例如程序需要執(zhí)行90秒,而nginx最大響應等待時間為30秒,這樣就會出現(xiàn)超時。
通常有以下幾種情況導致
- 程序在處理大量數(shù)據(jù),導致等待超時。
- 程序中調用外部請求,而外部請求響應超時。
- 連接數(shù)據(jù)庫失敗而沒有停止,死循環(huán)重新連。
出現(xiàn)這種情況,我們可以先優(yōu)化程序,縮短執(zhí)行時間。假如是文件解析這種本身就耗時比較長的任務,則可以調大nginx超時限制的參數(shù),使程序可以正常執(zhí)行。
修改nginx配置
nginx.conf中,設置以下幾個參數(shù),增加超時時間
http {
...
fastcgi_connect_timeout 3000;
fastcgi_send_timeout 3000;
fastcgi_read_timeout 3000;
...
}
fastcgi_connect_timeout
fastcgi連接超時時間,默認60秒
fastcgi_send_timeout
nginx 進程向 fastcgi 進程發(fā)送請求過程的超時時間,默認值60秒
fastcgi_read_timeout
fastcgi 進程向 nginx 進程發(fā)送輸出過程的超時時間,默認值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跟后端服務器連接超時時間(代理連接超時)
proxy_send_timeout 1800s;#后端服務器數(shù)據(jù)回傳時間(代理發(fā)送超時)
proxy_read_timeout 1800s;#連接成功后,后端服務器響應時間(代理接收超時)
到此這篇關于Nginx 解決504超時問題小結的文章就介紹到這了,更多相關Nginx 504超時內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
nginx如何實現(xiàn)配置靜態(tài)資源服務器及防盜鏈
這篇文章主要為大家介紹了nginx實現(xiàn)配置靜態(tài)資源服務器及防盜鏈步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11
Nginx配置網(wǎng)頁轉發(fā)的實現(xiàn)步驟
本文主要介紹了Nginx配置網(wǎng)頁轉發(fā)的實現(xiàn)步驟,實現(xiàn)將云服務器的80端口轉發(fā)到另一臺服務器部署的網(wǎng)頁,具有一定的參考價值,感興趣的可以了解一下2024-05-05

