传统实现方法
下载远程文件到本地服务器—>压缩–>下载–>删除。
这样实现 消耗内存、cpu、大量磁盘空间、速度太慢(取决于网络).使用第三方mod_zip 实现打包下载。
内存消耗极低。
通过输出X-Archive-Files
和文件列表,自动将远程文件打包下载避免了临时文件的创建和删除。
安装过程
下载mod_zip 源文件
|
|
tengine安装过程
使用dso-tool编译动态模块123/usr/local/tengine/bin/dso-tool \--add-module=/usr/local/src/mod_zip/ \--dst=/usr/local/tengine/modules/
报错1
1#vi +331 /usr/local/src/mod_zip/ngx_http_zip_file.c
修改为
保存
重新编译
仍然报错 12```#vi +11 /usr/local/src/mod_zip/ngx_http_zip_file.c
注释掉1//static ngx_str_t ngx_http_zip_header_charset_name = ngx_string("upstream_http_x_archive_charset");
重新编译通过
查看动态模块是否生成1#ls /usr/local/tengine/modules/
- 修改nginx配置文件测试
|
|
- 编写测试代码
|
|
tips
- 文件大小一定要正确 否则压缩打不开
- 文件uri (非url 远程文件需要配置nginx跳转).
例子中的lms(fastdfs)远程文件 需要在nginx内做配置跳转到正确的地址。 - 如果不需要断点续传crc32参数可以使用
-
忽略。12345678#vi nginx.confserver {...location /lms {proxy_pass http://fastdf_server;}...}
nginx 安装
查看旧的编译参数
1#/usr/local/nginx/sbin/nginx -V编译
|
|
报错级处理参考tengine内的处理方法.
#升级nginx1234#cp objs/nginx /usr/local/nginx/sbin#/usr/local/nginx/sbin/nginx -t#/usr/local/nginx/sbin/nginx