我正在尝试使用Postman原始文本选项上传5张base64图像,并设置了application / json标头。 服务器不断返回所提到的错误。 我正在Nginx反向代理后面使用NodeJS。
我尝试了下面代码中提到的所有选项,包括将限制增加到(100M),这显然不是问题。
NodeJS(MAXIMUM_FILE_SIZE_LIMIT ='500mb'):
app.use(bodyParser.urlencoded({ limit: process.env.MAXIMUM_FILE_SIZE_LIMIT, parameterLimit: 100000, extended: true }));
app.use(bodyParser.json({ limit: process.env.MAXIMUM_FILE_SIZE_LIMIT, extended: true }));
// app.use(bodyParser.text({ limit: process.env.MAXIMUM_FILE_SIZE_LIMIT, extended:true }));
app.use( bodyParser.text({type : 'application/text-enriched', limit: process.env.MAXIMUM_FILE_SIZE_LIMIT}) );
app.use( bodyParser.raw({limit: process.env.MAXIMUM_FILE_SIZE_LIMIT}) );
Nginx
内部配置(服务器,http,位置):
nginx.conf,
网站启用/默认,
网站可用/默认:
client_max_body_size 100M
我想成功上传图像(5张),它们的总大小不超过2MB。
答案 0 :(得分:0)
最终的解决方案是将nginx的client_max_body_size 5M;
仅保留在nginx.conf
,以及在NodeJS代码中使用以下几行:
app.use(bodyParser.urlencoded({ limit: '5mb', extended: true }));
app.use(bodyParser.json({ limit: '5mb' }));
请注意!
尝试了多种组合之后,问题似乎根本与上述提到的问题无关。
在按顺序使用node
命令执行服务器时,一切正常。但是,由于我想保持应用程序的运行状态(在服务器重新启动的情况下),因此我使用了forever
。
Forever启动了该应用程序,但是无论nginx和node的设置如何,显然每次都会抛出413
错误。
切换到PM2
,终于解决了。
祝你好运!