openresty lua zlib整合安裝 讓lua支持解壓服務端壓縮過的數據

來源於http://www.tuicool.com/articles/EZZZFn3的整理nginx

openresty在編譯安裝的時候就加入了lua支持,因此無需再對nginx進行改造。但lua下對gzip進行解壓,須要藉助一個庫:lua- zlib(https://github.com/brimworks/lua-zlib) lua是一個和C語言結合緊密的腳本語言,實際上lua-zlib就是一個C語言編寫的庫,咱們如今須要作的就是將其編譯成一個動態連接庫 zlib.so,讓lua來引用。git

去github下載最新的lua-zlib    https://codeload.github.com/brimworks/lua-/zip/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 && make install

編譯後,將其複製到/usr/local/openresty/lualib/ 目錄下,下面內容有說

以上代碼解釋一下。首先執行cmake來生成編譯配置文件。系統若提示沒有cmake的命令的話,請用yum安裝:yum install cmakegithub

LUA_INCLUDE_DIR指定luajit的include文件 夾,LUA_LIBRARIES指定luajit的lib文件夾。USE_LUAJIT=ON和USE_LUA=OFF指定咱們使用的是luajit而不 是lua:bash

再執行make && make install便可:ui

這時候已經編譯好了zlib.so,拷貝到openresty的lib目錄下便可:lua

cp zlib.so /usr/local/openresty/lualib/zlib.sorest

使用方式:code

local zlib = require("zlib")
local stream = zlib.inflate()
#resp.body是指壓縮的內容,r是返回解壓後的內容
local r=stream(resp.body);
相關文章
相關標籤/搜索