`
dcj3sjt126com
  • 浏览: 1857529 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Nginx的Upload上传模块

阅读更多

 

nginx-upload-prgress下载地址:http://wiki.nginx.org/NginxHttpUploadProgressModule
nginx-upload-module下载地址及相关说明:http://www.grid.net.ru/nginx/upload.en.html


接下来安装Nginx
1.安装Nginx所需的pcre库:
# unzip pcre-8.21.zip 
# ./configure 
# make && make install

2.安装Nginx
# groupadd www
# useradd -g www www
# unzip masterzen-nginx-upload-progress-module-v0.8.2-0-g8b55a34.zip 
# unzip nginx_upload_module-2.2.0.zip 
# tar xvf nginx-1.0.11.tar.gz 
# cd nginx-1.0.11
# ./configure --prefix=/usr/local/webserver/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --add-module=../masterzen-nginx-upload-progress-module-8b55a34/ --add-module=../nginx_upload_module-2.2.0
# make && make install


配置Nginx如下,部分如下
server
    {
    listen       80;
    server_name web.test.com;
        index index.html index.htm;
        root /data/html/www;
        if ($host = 'test.com' )
        {

                rewrite ^/(.*)$ http://web.test.com/$1 permanent;  
       
        }
        if (-d $request_filename)
       
        {
   
                rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
   
        }

    # Upload form should be submitted to this location
    location /upload {
          # Set specified fields in request body
            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;

          # Inform backend about hash and size of a file
            upload_aggregate_form_field "${upload_field_name}_md5" $upload_file_md5;
            upload_aggregate_form_field "${upload_field_name}_size" $upload_file_size;

            upload_pass /test ;
            upload_pass_args on;
            upload_limit_rate 128k;
            upload_store /data/html/www/source/image/sourceImage;
   
            upload_store_access user:r;
 
            upload_pass_form_field "^.*$";
            upload_cleanup 400 404 499 500-505;
            }

        
    location /test {
        proxy_pass   http://localhost:10000/image/upload;
        }


       # Pass altered request body to a backend
        location ~ .*\.php {
              #fastcgi_pass  unix:/tmp/php-cgi.sock;
              fastcgi_pass  127.0.0.1:9000;
              fastcgi_index index.php;
              include fcgi.conf;
            }
    }


大概解释一下每个参数 
upload_pass 指明了需要后续处理的地址
upload_cleanup 如果出现400 404 499 500-505之类的错误,则删除上传的文件
upload_store 上传文件存放地址
upload_store_access 上传文件的访问权限,user:r是指用户可读
upload_limit_rate 上传限速,如果设置为0则表示不限制
upload_set_form_field 设定额外的表单字段。这里有几个可用的变量: 
$upload_file_name 文件原始名字 
$upload_field_name 表单的name值 
$upload_content_type 文件的类型 
$upload_tmp_path 文件上传后的地址
upload_aggregate_form_field 额外的变量,在上传成功后生成 
$upload_file_md5 文件的MD5校验值 
$upload_file_size 文件大小
upload_pass_form_field 从表单原样转到后端的参数,可以正则表达式表示官方的例子是upload_pass_form_field "^submit$|^description$";意思是把submit,description这两个字段也原样通过upload_pass传递到后端处理。如果希望把所有的表单字段都传给后端可以用upload_pass_form_field "^.*$";

 
分享到:
评论

相关推荐

    Nginx文件上传模块配置

    在本文中,我们将深入探讨如何配置Nginx以支持文件上传功能,特别是使用upload_module和upload_progress_module这两个第三方模块。Nginx是一个高效且灵活的HTTP服务器和反向代理,由Igor Sysoev开发,它支持模块化的...

    nginx-upload-progress模块源码

    `nginx-upload-progress` 模块就是这样一种解决方案,它允许 Nginx 在处理文件上传时返回实时的上传进度信息。 **模块介绍** `nginx-upload-progress` 模块是专为 Nginx 设计的,用来跟踪并报告文件上传的进度。这...

    nginx-upload-module模块源码

    nginx-upload-module模块源码,用于nginx配置文件上传功能

    nginx-upload-module-master.rar_modules_nginx_upload

    Nginx Upload Module 是一款为 Nginx Web 服务器设计的扩展模块,主要用于处理文件上传功能。它提供了高效、灵活且可靠的文件上传解决方案,支持大文件分块上传以及断点续传,是许多 web 应用程序在后端处理用户上传...

    nginx上传下载之nginx-upload-module-2.3.0

    Nginx Upload Module 是一个用于 Nginx 的第三方模块,它允许用户在通过 HTTP 协议上传大文件时进行处理,例如分块上传、限速、断点续传等。这个模块对于构建支持大文件上传的 Web 应用非常有用,特别适用于文件分享...

    Nginx+upload+lua实现简单文件上传服务

    本教程将详细解析如何使用Nginx、upload模块以及lua来搭建一个简单的文件上传系统。 首先,我们需要了解Nginx的ngx_http_upload_module模块,这是一个用于处理HTTP POST请求中的文件上传的第三方模块。它允许我们在...

    nginx_upload_module 加lua 实现上传

    `nginx_upload_module`是一个用于Nginx服务器的第三方模块,它允许处理和存储上传的文件。结合Lua脚本,我们可以实现更灵活和强大的上传功能。这篇博文(链接:)可能详细介绍了如何在Nginx中集成`nginx_upload_...

    nginx-upload文件上传代码和工具

    `nginx-upload`模块是针对Nginx设计的一个扩展,专门用于处理大文件上传。本文将深入探讨`nginx-upload`的相关知识点,包括其工作原理、安装配置以及如何使用。 1. **Nginx-Upload模块概述** `nginx-upload`模块是...

    nginx-upload-module-2.0.tar.gz

    在Nginx的配置文件(通常是`nginx.conf`)中,你需要添加模块相关的配置指令,如`upload_pass`,`upload_set_form_field`等,以便指定上传文件的处理方式。 5. **重新加载或重启Nginx**: 最后,使用`sudo nginx ...

    nginx-upload-module-2.2.

    Nginx Upload Module是一个第三方模块,用于处理HTTP请求中的文件上传。它允许你在Nginx服务器端接收并处理大文件上传,无需将文件流经应用程序服务器,从而提高了性能和效率。2.2版本修复了一些已知问题,提升了...

    nginx1.16.1+nginx-upload-module-2.3.0.zip

    而 nginx-upload-module 是 Nginx 的一个扩展模块,用于处理大文件上传,特别适合于需要处理大量用户上传文件的Web应用。 【描述】"nginx-1.16.1.tar.gz + nginx-upload-module-2.3.0.tar.gz" 提示我们这个压缩包...

    nginx_upload_module-2.2.0.tar.gz

    Nginx Upload Module 是由 Michael Noll 开发的一个模块,它允许用户在 Nginx 中实现文件上传,包括临时存储上传文件、将文件移动到指定位置、支持断点续传以及验证文件大小和类型等。该模块通常与后端的动态语言如 ...

    断点上传Nginx升级后的组件nginx-upload-module-2.2

    `nginx-upload-module`是Nginx的一个模块,主要任务是处理上传请求,包括接收、验证和存储上传的文件。它的设计目标是提供一种安全且高效的方式来处理文件上传,特别适合高并发和大文件上传的场景。`nginx-upload-...

    nginx1.16+nginx-upstream-check-module-master+nginx-upload-module

    `nginx-upload-module`则是用于处理文件上传的Nginx模块。在很多Web应用中,用户可能需要上传图片、文档等文件,这个模块提供了一个高效且安全的解决方案。它可以在客户端上传文件时直接在Nginx层面进行处理,减轻了...

    nginx-upload-module-master.zip

    为了解决这个问题,社区开发了第三方模块——Nginx Upload Module,它允许用户在Nginx服务器上便捷地实现文件上传功能。 **一、Nginx Upload Module 概述** Nginx Upload Module 是一个Nginx插件,主要功能是接收...

    Nginx文件上传进度显示

    在文件上传方面,Nginx 提供了一个强大的模块——`nginx_uploadprogress_module`,用于跟踪和显示文件上传进度。这对于提高用户体验至关重要,尤其是在上传大型文件或网络连接不稳定的情况下。 #### 二、模块安装与...

    nginx upload在java中的应用.doc

    总的来说,nginx upload模块结合Java服务器提供了一种高效处理文件上传的方法。前端提交文件至Nginx,Nginx负责存储和传递文件信息,后端Java应用则可以专注于业务逻辑处理,如文件迁移、转码等。这种方式不仅简化了...

    nginx-upload-module

    Nginx上传模块该模块基于Nginx上传模块(v 2.2.0) 。 ...由于似乎作者没有维护该模块。 我更改了一些可以与最新的nginx一起安装的代码。 安装./configure --add-module = {module_dir} && make &&进行安装conf ...

    nginx安装文件上传ngx_upload模块教程.docx

    ngx_upload模块是Nginx的一个扩展模块,专门用于处理HTTP请求中的文件上传功能。这个模块允许用户在Web应用中安全地上传文件,并提供了多种配置选项来控制上传过程。以下是安装和配置ngx_upload模块的详细步骤: 1....

Global site tag (gtag.js) - Google Analytics