更改Egg和Nginx上传文件大小限制
Mercer-Lee的空间 2020-01-30
Linux
Nginx
Egg
# 场景
在有些时候我们需要解析很大的文件,动辄几十M,比如一个上万行的Excel文件,这个时候经常会出现报错,这是因为有些后端框架默认限制了文件大小,防止出现内存不够的场景,还有就是如果你是用的Nginx来做反向代理的话,Nginx也会限制文件的大小。这个时候我们就需要解除这些限制。
# Egg
Egg的文件大小闲置,在config.default.js上修改config设置:
config.multipart = {
mode: 'file',
whitelist: [ '.xlsx', '.png' ],
fileSize: '100mb', // 可以把要设置的文件大小调成更大
};
# Nginx
nginx的设置其实很简单,我们直接修改对应的conf文件即可:
cd /etc/nginx
如果你的conf文件是分开放在conf.d文件的就修改对应的conf文件即可,比如我这边是在conf.d文件夹放了一个api.conf
cd conf.d && sudo vim api.conf
然后修改配置文件:
server {
listen 80 default_server;
server_name test.com;
location /api {
if ($request_method = 'OPTIONS') {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Max-Age 1728000;
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
add_header Access-Control-Allow-Headers 'Authorization,DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header Content-Type' 'text/plain; charset=utf-8';
add_header Content-Length 0 ;
return 204;
}
client_max_body_size 100m; // 这里就可更改nginx限制的大小
proxy_pass http://localhost:9000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
修改完成之后重启nginx就可以了:
systemctl restart nginx