Mercer-Lee的空间

vuePress-theme-reco Mercer-Lee的空间    2018 - 2024
Mercer-Lee的空间 Mercer-Lee的空间

Choose mode

  • dark
  • auto
  • light
TimeLine
分类
  • 数据结构和算法
  • 后端
  • 运维
  • 前端
  • 工具
  • 语言
标签
我的GitHub (opens new window)
author-avatar

Mercer-Lee的空间

27

文章

29

标签

TimeLine
分类
  • 数据结构和算法
  • 后端
  • 运维
  • 前端
  • 工具
  • 语言
标签
我的GitHub (opens new window)
  • 更改Egg和Nginx上传文件大小限制

    • 场景
      • Egg
        • Nginx

        更改Egg和Nginx上传文件大小限制

        vuePress-theme-reco Mercer-Lee的空间    2018 - 2024

        更改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