Chinaunix首页 | 论坛 | 博客
  • 博客访问: 547224
  • 博文数量: 911
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 7395
  • 用 户 组: 普通用户
  • 注册时间: 2022-03-07 15:28
个人简介

天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。

文章分类

全部博文(911)

文章存档

2026年(14)

2025年(202)

2024年(244)

2023年(247)

2022年(202)

我的朋友

分类: 网络与安全

2025-12-29 17:08:30

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

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

github:

1. 安装

1.1 检查是否安装zlib


点击(此处)折叠或打开

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

1.2 安装cmake

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


点击(此处)折叠或打开

  1. gcc -v
  2. g++ -v
  3. make -v

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

安装cmake


点击(此处)折叠或打开

  1. cd /usr/local
  2. wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
  3. tar -xvzf cmake-2.8.10.2.tar.gz
  4. cd cmake-2.8.10.2
  5. ./bootstrap
  6. gmake
  7. gmake install
  8.  
  9. 检查cmake是否安装成功:
  10. $ cmake --version
  11. cmake version 2.8.10.2
1.3 安装lua-zlib

点击(此处)折叠或打开

  1. (1)download
  2. cd /usr/local
  3. wget https://github.com/brimworks/lua-zlib/archive/master.zip
  4. unzip lua-zlib-master.zip
  5. (2)cmake
  6. cd /usr/local/lua-zlib-master
  7. 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
  8. make
  9. cp zlib.so /usr/local/openresty/lualib/zlib.so
2. zlib包使用

点击(此处)折叠或打开

  1. local zip = require(zlib)
  2.    
  3.     local v,mv,pv=zip.version()
  4.     local str_data
  5.     -- ngx.log(ngx.INFO, "zip.version(): ", v, ", ", mv, ", ", pv)


  6.     local req_cotent_encoding = ngx.req.get_headers()["Content-Encoding"]
  7.     if req_cotent_encoding == "gzip" then
  8.         ngx.log(ngx.INFO, "req_cotent_encoding = gzip")
  9.         -- 解压缩
  10.         local inflate = zip.inflate()
  11.         str_data = inflate(data)
  12.         ngx.log(ngx.INFO, "raw data: ", data, ", after inflate str_data: ", str_data)
  13.         -- 压缩验证
  14.         --[[local deflate = zip.deflate()
  15.         str_data = deflate(data)
  16.         ngx.log(ngx.INFO, "raw data: ", data, ", after deflate str_data: ", str_data)]]--
  17.     else
  18.         ngx.log(ngx.INFO, "req_cotent_encoding ~= gzip")
  19.         str_data = data
  20.     end





阅读(4) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~