lua-zlib模块安装与使用

天翼云开发者社区
• 阅读 258

本文分享自天翼云开发者社区《lua-zlib模块安装与使用》.作者:lucky_lyw

lua-zlib包用于nginx上对gzip数据进行解压缩,可将lua-zlib编译成一个动态链接库zlib.so,便于lua引用。

github:https://github.com/brimworks/lua-zlib

  1. 安装

1.1 检查是否安装zlib

$ rpm -qa zlib
zlib-1.2.3-29.el6.x86_64

1.2 安装cmake

检查gcc, g++, make是否安装

gcc -v
g++ -v
make -v

若未安装,则:yum install -y gcc gcc-c++ make automake

安装cmake

cd /usr/local
wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
tar -xvzf 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

1.3 安装lua-zlib

(1)download
cd /usr/local
wget https://github.com/brimworks/lua-zlib/archive/master.zip
unzip lua-zlib-master.zip
(2)cmake
cd /usr/local/lua-zlib-master
cmake -DLUA_INCLUDE_DIR=/usr/local/openresty/luajit/include/luajit-2.1 -DLUA_LIBRARIES=/usr/local/openresty/luajit/lib -DUSE_LUAJIT=ON -DUSE_LUA=OFF
make
cp zlib.so /usr/local/openresty/lualib/zlib.so
  1. zlib包使用

    local zip = require(zlib) 
    
     local v,mv,pv=zip.version()
     local str_data
     -- ngx.log(ngx.INFO, "zip.version(): ", v, ", ", mv, ", ", pv)
    
    
local req_cotent_encoding = ngx.req.get_headers()["Content-Encoding"]
if req_cotent_encoding == "gzip" then
    ngx.log(ngx.INFO, "req_cotent_encoding = gzip")
    -- 解压缩
    local inflate = zip.inflate()
    str_data = inflate(data)
    ngx.log(ngx.INFO, "raw data: ", data, ", after inflate str_data: ", str_data)
    -- 压缩验证
    --[[local deflate = zip.deflate()
    str_data = deflate(data)
    ngx.log(ngx.INFO, "raw data: ", data, ", after deflate str_data: ", str_data)]]--
else
    ngx.log(ngx.INFO, "req_cotent_encoding ~= gzip")
    str_data = data
end

```

点赞
收藏
评论区
推荐文章
Springfox与SpringDoc——swagger如何选择(SpringDoc入门)
本文分享自天翼云开发者社区@《》,作者:才开始学技术的小白0.引言之前写过一篇关于swagger(实际上是springfox)的使用指南(https://www.ctyun.cn/developer/article/371704742199365),涵盖了
Dummynet简单部署
本文分享自天翼云开发者社区《Dummynet简单部署》,作者:凸凹部署流程^准备内核版本 ^参看系统内核版本unamer 我们需要将ipfw编译成内核模块,请确保ipfw用到的内核源码版本同你linux系统运行内核版本一致。
故障测试之模拟网络丢包
本文分享自天翼云开发者社区《》,作者:yn1、模拟网络丢包工具——TC(TrafficControl)TC(TrafficControl)是linux自带的模块,一般不需要安装,TC要求内核2.4.18以上。Linux操作系统中的流量控制器TC用于Linu
搭建MySQL主从
本文分享自天翼云开发者社区《》,作者:2m——本文基于MySQL5.7.36进行演示1、下载MySQL安装包官网网址:https://downloads.mysql.com/archives/community2、解压MySQL安装包将以下包上传至服务器:
kafka数据同步到mysql
本文分享自天翼云开发者社区《》,作者:刘猛kafka安装使用dockercompose进行安装,dockercompose文件如下:version:'2'services:zookeeper:image:wurstmeister/zookeeperport
openresty中使用ngx.sleep(0)防止worker进程阻塞
本文分享自天翼云开发者社区《》.作者:小谢不用谢1.ngx.sleep(0)的工作原理在OpenResty中,ngx.sleep(0)函数的作用是让当前的Lua协程主动放弃CPU执行权,以便Nginx能够及时处理其他并发请求和I/O操作。具体来说,调用ng
nginx解决进程内存占用翻倍
本文分享自天翼云开发者社区《》.作者:zn1.问题某天,线上生成环境发现一个问题:某一台机器线上的nginx进程占用的内存是其他机器的2倍,尝试对nginx进行reload后,并没有恢复内存占用翻倍机器:正常机器:2.分析1.每次reload或者启动时wo
centos安装safe-rm
本文分享自天翼云开发者社区《》.作者:王兰saferm是一个安全的rm命令替代品,用于防止误删重要文件。从EPEL仓库中安装,按顺序输入以下指令:sudoyumupdateysudoyuminstallyepelreleasesudoyuminstally
Lua:善用luarocks管理公共库
本文分享自天翼云开发者社区《》.作者:王淋什么是LuarocksLuarocks是一个Lua包管理器,基于Lua语言开发,提供一个命令行的方式来管理Lua包依赖、安装第三方Lua包等,社区比较流行的包管理器之一Python具有PIP,Ruby具有Gems,
探究Openresty中ngx.re与Lua string.re两种正则的选择
本文分享自天翼云开发者社区《》.作者:王淋0.背景openresty中存在2套正则API,即ngx.re与lua语言的string库,都可以实现正则匹配查找等功能,那么,这2个API有什么区别,又如何选择呢?1.性能测试1.1简单loop测试a)短字符串&
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
1.0k
粉丝
16
获赞
40