nginx文件上傳限制以及超時(shí)無響應(yīng)問題的解決
一、背景
筆者最近開發(fā)前后端分離項(xiàng)目遇到一些問題,后端服務(wù)是基于80/443端口反向代理的,所以請求會經(jīng)過nginx網(wǎng)關(guān),然后將請求代理到后端服務(wù),這是開發(fā)環(huán)境。
二、問題
- 文件上傳大小有限制
- 上傳傳時(shí)間過長無響應(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í)設(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)過以上客戶端請求配置和超時(shí)配置后按理說就解決了上面兩個問題了,可是當(dāng)我再進(jìn)行測試的時(shí)候,接口依舊1分鐘請求超時(shí)。

最后我想了一圈也沒想到竟然是axios請求超時(shí)配置是60000ms,也就是1分鐘,此時(shí)此刻豁然開朗了。
const service = axios.create({
baseURL: '/api', // api base_url
timeout: 300000 // 請求超時(shí)時(shí)間, 配置為5分鐘
})
再進(jìn)行測試

ok,也是上傳成功了,沒想到用時(shí)2.6分鐘。
四、總結(jié)
配置nginx文件限制不僅僅在nginx中配置,后端服務(wù)也要配置,因?yàn)橛泻脦讓泳W(wǎng)關(guān),例如SpringBoot的配置:
# multipart configuration spring.servlet.multipart.max-request-size=100MB spring.servlet.multipart.max-file-size=100MB
還有就是請求超時(shí)配置,例如axios的請求超時(shí)時(shí)間:
const service = axios.create({
baseURL: '/api', // api base_url
timeout: 300000 // 請求超時(shí)時(shí)間, 配置為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í)設(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文件上傳限制以及超時(shí)無響應(yīng)問題的解決的文章就介紹到這了,更多相關(guān)nginx文件上傳限制及超時(shí)無響應(yīng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
講解Nginx服務(wù)器中設(shè)置本地瀏覽器緩存的簡單方法
這篇文章主要介紹了Nginx服務(wù)器中設(shè)置本地瀏覽器緩存的簡單方法,需要的朋友可以參考下2015-12-12
Nginx服務(wù)器進(jìn)程數(shù)設(shè)置和利用多核CPU的方法
這篇文章主要介紹了Nginx服務(wù)器進(jìn)程數(shù)設(shè)置和利用多核CPU的方法,這樣便可以更大限度地提高Nginx運(yùn)行效率,需要的朋友可以參考下2015-08-08
windows下快速安裝nginx并配置開機(jī)自啟動的方法
這篇文章主要介紹了windows下快速安裝nginx 并配置開機(jī)自啟動的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05
Nginx轉(zhuǎn)發(fā)需求querystring轉(zhuǎn)寫示例解析
這篇文章主要為大家介紹了Nginx轉(zhuǎn)發(fā)需求querystring轉(zhuǎn)寫示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
Nginx流量同時(shí)轉(zhuǎn)發(fā)多后端(流量鏡像分發(fā))
在需要同時(shí)將請求轉(zhuǎn)發(fā)至多個后端服務(wù)的場景中,Nginx的mirror模塊提供了流量鏡像分發(fā)的功能,本文就來介紹一下Nginx流量同時(shí)轉(zhuǎn)發(fā)多后端(流量鏡像分發(fā)),感興趣的可以了解一下2024-10-10

