一聚教程网:一个值得你收藏的教程网站

热门教程

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

时间:2022-06-30 18:36:20 编辑:袖梨 来源:一聚教程网


安装nginx,并加入nginx upload module和nginx cache purge module:
mkdir ~/download
cd ~/download
 
wget http://www.grid.net.ru/nginx/download/nginx_upload_module-2.0.12.tar.gz
tar zxf nginx_upload_module-2.0.12.tar.gz
 
git clone https://github.com/FRiCKLE/ngx_cache_purge.git
 
yum groupinstall "Development Tools"
yum install pcre-devel zlib-devel openssl-devel
 
wget http://nginx.org/download/nginx-1.2.3.tar.gz
tar zxf nginx-1.2.3.tar.gz
cd nginx-1.2.3
 
./configure --prefix=/usr/local/nginx --with-pcre --with-http_ssl_module --add-module=../nginx_upload_module-2.0.12 --add-module=../ngx_cache_purge
 
make && make install

尝试启动:

/usr/local/nginx/sbin/nginx
ps aux | grep nginx
假如我的网站是放在 /home/mysite/www 下的,而nginx配置文件就放在 /home/mysite/etc 下:
省略了很多内容的配置文件,mysite.conf:
server {
    listen 80;
    server_name 192.168.1.123;
 
    client_max_body_size 20M;
   
    location /upload {
        include /home/mysite/etc/nginx/ngx_upload.conf;
    }
   
    ....其他的配置....
   
    location @after_upload {
        proxy_pass   http://www_backend;
    }
}   

将nginx_upload.conf独立开来,是因为其他网站也可以包含此上传配置文件:

nginx_upload.conf:
upload_pass     @after_upload;
upload_pass_args on;
upload_cleanup 400 404 499 500-505;
upload_store    /home/mysite/www/uploads/tmp;
upload_store_access user:r;
upload_limit_rate 128k;
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_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,代表可以将表单的所有参数保持原样传递到后端,需要区分文件保存类型时很有用。

热门栏目