nginx文件上傳限制以及超時無響應(yīng)問題的解決
一、背景
筆者最近開發(fā)前后端分離項目遇到一些問題,后端服務(wù)是基于80/443端口反向代理的,所以請求會經(jīng)過nginx網(wǎng)關(guān),然后將請求代理到后端服務(wù),這是開發(fā)環(huán)境。
二、問題
- 文件上傳大小有限制
- 上傳傳時間過長無響應(yīng)
二、解決方案
http { ... # 性能優(yōu)化 sendfile on; tcp_nopush on; tcp_nodelay on; # 客戶端請求配置 client_max_body_size 1000M; # 解決文件上傳大小限制 client_body_buffer_size 2M; client_header_buffer_size 256k; large_client_header_buffers 4 256k; # 超時設(shè)置 client_body_timeout 600s; client_header_timeout 600s; keepalive_timeout 120s; keepalive_requests 1000; # 反向代理配置 proxy_connect_timeout 600s; proxy_send_timeout 600s; proxy_read_timeout 600s; }
經(jīng)過以上客戶端請求配置和超時配置后按理說就解決了上面兩個問題了,可是當(dāng)我再進行測試的時候,接口依舊1分鐘請求超時。
最后我想了一圈也沒想到竟然是axios請求超時配置是60000ms,也就是1分鐘,此時此刻豁然開朗了。
const service = axios.create({ baseURL: '/api', // api base_url timeout: 300000 // 請求超時時間, 配置為5分鐘 })
再進行測試
ok,也是上傳成功了,沒想到用時2.6分鐘。
四、總結(jié)
配置nginx文件限制不僅僅在nginx中配置,后端服務(wù)也要配置,因為有好幾層網(wǎng)關(guān),例如SpringBoot的配置:
# multipart configuration spring.servlet.multipart.max-request-size=100MB spring.servlet.multipart.max-file-size=100MB
還有就是請求超時配置,例如axios的請求超時時間:
const service = axios.create({ baseURL: '/api', // api base_url timeout: 300000 // 請求超時時間, 配置為5分鐘 })
最后還有nginx配置:
http { ... # 性能優(yōu)化 sendfile on; tcp_nopush on; tcp_nodelay on; # 客戶端請求配置 client_max_body_size 100M; # 解決文件上傳大小限制 client_body_buffer_size 2M; client_header_buffer_size 256k; large_client_header_buffers 4 256k; # 超時設(shè)置 client_body_timeout 600s; client_header_timeout 600s; keepalive_timeout 120s; keepalive_requests 1000; # 反向代理配置 proxy_connect_timeout 600s; proxy_send_timeout 600s; proxy_read_timeout 600s; }
這三板斧下來就能夠解決大部分文件上傳問題了。
到此這篇關(guān)于nginx文件上傳限制以及超時無響應(yīng)問題的解決的文章就介紹到這了,更多相關(guān)nginx文件上傳限制及超時無響應(yīng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx實現(xiàn)動態(tài)封禁IP的設(shè)計方案
為了封禁某些爬蟲或者惡意用戶對服務(wù)器的請求,我們需要建立一個動態(tài)的 IP 黑名單,對于黑名單中的 IP ,我們將拒絕提供服務(wù),并且可以設(shè)置封禁失效時間,所以本文給大家介紹了Nginx實現(xiàn)動態(tài)封禁IP的設(shè)計方案,需要的朋友可以參考下2024-12-12在Nginx服務(wù)器中配置mod_proxy反向代理的方法
這篇文章主要介紹了在Nginx服務(wù)器中配置mod_proxy反向代理的方法,Nginx服務(wù)器最大的特點就是作高性能反向代理使用,需要的朋友可以參考下2015-07-07nginx如何實現(xiàn)同個ip、端口訪問不同的項目(以路徑區(qū)分項目)
這篇文章主要介紹了nginx如何實現(xiàn)同個ip、端口訪問不同的項目(以路徑區(qū)分項目),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12