在使用nodejs作為代理服務時,遇到上傳文件報錯:413 Request Entity Too Large,在網上查了很多資料,大多是解決nodejs文件大小限制,經過反復排查,終於將問題定位到k8s路由(Ingress)配置。
一、解決方案
修改路由(Ingress)配置YAML,添加proxy-body-size
設置。
// 我們業務中需要將近100M文件打下,所以設置了100M,具體業務具體對待
nginx.ingress.kubernetes.io/proxy-body-size: 100M
配置更新后上傳文件正常。
二、記錄Express設置文件limit
在這里順便記錄下express如何設置文件上傳大小限制(Express 4.x.x)。
// 安裝body-parser
npm install --save body-parser
// 使用body-parser中間件
var bodyParser = require("body-parser");
app.use(bodyParser.json({limit: '100mb'}));
app.use(bodyParser.urlencoded({limit: '100mb', extended: true, parameterLimit:100000}));