nginx文件上传模块nginx-upload-module

1.简介

nginx-upload-module是nginx的文件上传模块,使用此模块的好处是不需要自己开发文件上传接口,只需要配置nginx的配置文件即可进行文件上传,并且支持断点续传特别适合传视频等大文件,此模块默认是没有被安装的,需要下载后重新编译nginx进行安装,不会添加的参考此文章

2.配置

location /api/v2.0/video/upload/ {
 	  upload_pass @python;  #转到后台处理URL,表示Nginx接收完上传的文件后,然后交给后端处理的地址
      upload_resumable on;  #启动断点续传
      upload_state_store /tmp/nginx_upload/state;  #状态文件路径
      #临时保存路径, 可以使用散列
      upload_store /tmp/nginx_upload; #上传模块接收到的文件临时存放的路径,1表示方式,该方式是需要在/tmp/nginx_upload下创建以09为目录名称的目录,上传时候会进行一个散列处理。
      upload_store_access user:rw group:rw all:rw; #上传文件的权限,rw表示读写 r只读
      set $upload_field_name "file";
      
      #这里写入http报头,pass到后台页面后能获取这里set的报头字段
      upload_set_form_field "${upload_field_name}_name" $upload_file_name;
      upload_set_form_field "${upload_field_name}_content_type" $upload_content_type;
      upload_set_form_field "${upload_field_name}_path" $upload_tmp_path;
      
      #Upload模块自动生成的一些信息,如文件大小与文件md5值
      #upload_aggregate_form_field "${upload_field_name}_md5" $upload_file_md5;
      upload_aggregate_form_field "${upload_field_name}_size" $upload_file_size;
      upload_pass_form_field "^.*$"; #允许的字段,允许全部可以 "^.*$"
      #upload_pass_form_field "^submit$|^description$";
      upload_limit_rate 0; #每秒字节速度控制,0表示不受控制,默认0, 128K
      upload_cleanup 400 404 499 500-505; #如果pass页面是以下状态码,就删除此次上传的临时文件
      upload_pass_args on;  #打开开关,意思就是把前端脚本请求的参数会传给后端的脚本语言,比如:http://192.168.1.251:9000/upload/?k=23,后台可以通过POST['k']来访问。
    }
location @python {
    uwsgi_connect_timeout   3000;
    uwsgi_send_timeout      3000;
    uwsgi_read_timeout      3000;
    uwsgi_param   Host                 $host;
    uwsgi_param   X-Real-IP            $remote_addr;
    uwsgi_param   X-Forwarded-For      $proxy_add_x_forwarded_for;
    uwsgi_param   X-Forwarded-Proto    $http_x_forwarded_proto;
    uwsgi_param   REMOTE_ADD           $remote_addr;
    include uwsgi_params;
    uwsgi_pass ip:host;
    }
}

3.说明

按照以上配置后使用nginx -t查看配置是否有问题,然后重启nginx即可加载成功,当上传文件时nginx会自动保存到配置的目录中,然后调用配置的接口(此接口是用户自己写的功能接口)处理此文件,如果文件上传失败nginx会自动删除已上传的部分节省空间,并且没有完整上传也不会调用后台接口减少无效的接口访问。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值