openresty使用gzip压缩解压
来源:互联网 发布:武汉百纳信息知乎 编辑:程序博客网 时间:2024/06/11 01:08
1、查看 zlib在centos 中是否存在?
rpm -qa | grep zlib
显示:
zlib-devel-1.2.3-29.el6.x86_64
zlib-1.2.3-29.el6.x86_64
2、安装cmake编译器
yum install -y gcc gcc-c++ make automake
wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
tar -zxvf cmake-2.8.10.2.tar.gz
cd cmake-2.8.10.2
./bootstrap
gmake
gmake install
检查cmake安装
cmake --version
显示
cmake version 2.8.10.2
表示安装成功
3、下载lua-zlib包,并解压
unzip lua-zlib-master.zip
cd /usr/local/software/lua-zlib-master
cmake -DLUA_INCLUDE_DIR=/usr/local/openresty/luajit/include/luajit-2.1
若报错:CMake Error at CMakeLists.txt:27 (find_package):
By not providing "FindLua.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Lua", but
CMake did not find one.
make
cp zlib.so /usr/local/openresty/lualib/zlib.so
4.lua脚本调用local zip = require 'zlib'
local uncompress = zip.inflate()
local compress = zip.deflate()
local deflated, eof, bytes_in,bytes_out =compress("asdasdasdasdasdasdasdasdasd", 'finish')
print(deflated, eof, bytes_in,bytes_out)
local uss,ret,getin,getout=uncompress(deflated)print(uss,ret,getin,getout)
print(uss,ret,getin,getout)
5.zlib库不能直接压缩gzip格式,使用lua-ffi-zlib
源码路径:https://github.com/hamishforbes/lua-ffi-zlib
调用:
local ffi_zlib = require "lib.ffi-zlib"
local chunk = 16384
local count = 0
local input = function(bufsize)
local start = count > 0 and bufsize*count or 1
local data = str:sub(start, (bufsize*(count+1)-1))
if data == "" then
data = nil
end
print(data)
count = count + 1
return data
end
local output_table = {}
local output = function(data)
insert(output_table, data)
end
local ok, err = ffi_zlib.deflateGzip(input, output, chunk)
if not ok then
print(err)
end
local compress = concat(output_table,'')
ngx.header["Content-Encoding"] = "gzip"
ngx.print(compress)
- openresty使用gzip压缩解压
- 使用zlib压缩和解压gzip
- Java使用GZIP进行压缩和解压
- gzip解压和压缩
- Gzip压缩和解压
- GZIP压缩解压类
- GZIP压缩和解压
- Gzip解压和压缩
- Gzip压缩数据解压
- GZIP压缩解压类
- GZip压缩解压
- GZip 压缩解压 --- Pako 的压缩解压
- 使用TStream*的gzip文件格式的压缩和解压函数
- Linux下使用gzip压缩与解压文件
- 使用zlib实现gzip格式数据的压缩和解压
- 使用zlib实现gzip格式数据的压缩和解压
- [Java]使用gzip对字符串进行压缩/解压
- 使用pako.js实现gzip的压缩和解压
- 食堂菜谱管理c++
- ElasticSearch5.X搜索条件的聚合(六)
- Spark独到见解--1、什么是Spark?及和MR的区别
- [编程题] 独立的小易
- 索引的效果测试
- openresty使用gzip压缩解压
- android-native反调试
- 忘记了oracle数据库用户的密码,怎么办?
- 直方图
- 【2017-11+10】 JS中正则表达式详解
- 实现手机端自适应布局的几种方法
- 主存储器组织
- Linux下c语言多线程编程
- 分布式进程BaseManager(multiprocessing.managers)