您的位置:首页 > 汽车 > 时评 > 广州网站优化实战_广州企业网站建设公司哪家好_国外免费域名申请_百度一下百度搜索百度

广州网站优化实战_广州企业网站建设公司哪家好_国外免费域名申请_百度一下百度搜索百度

2024/12/22 0:08:44 来源:https://blog.csdn.net/qq_25954159/article/details/142650556  浏览:    关键词:广州网站优化实战_广州企业网站建设公司哪家好_国外免费域名申请_百度一下百度搜索百度
广州网站优化实战_广州企业网站建设公司哪家好_国外免费域名申请_百度一下百度搜索百度

在做埋点采集方案的时候,直接采用Openresty进行数据采集

手撸Java代码性能较差,直接使用第三方框架进行数据采集处理。

其中需要应用到lua-zlib模块进行gz的压缩文件解压;

lua-zlib的安装过程如下:

wget https://github.com/brimworks/lua-zlib/archive/master.zip
unzip master.zip
cd 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

确保luajit的依赖存在,在cmake检查的时候会显示出来;

执行make后会在编译主目录下生成zlib.so文件

将zlib.so文件放到openresty的lualib目录下,供全局加载到

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

然后在代码里面就可以使用了

 location /deal_data {lua_need_request_body on;content_by_lua_block {-- 加载lua-zlib库local zlib = require "zlib"-- 读取请求体ngx.req.read_body()-- 获取请求体数据local request_body = ngx.req.get_body_data()-- 检查是否有数据if not request_body thenngx.log(ngx.ERROR, "No request body found.")return ngx.exit(400)end-- 解压数据local stream = zlib.inflate()local r=stream(request_body);-- ngx.req.set_body_data(r);if err thenngx.log(ngx.ERROR, "Failed to decompress GZIP data: ", err)return ngx.exit(500)end-- 设置响应头ngx.header.content_type = 'application/json'-- 输出解压后的数据ngx.say(r)return ngx.exit(200)}}

至此完成解压工作;

容易踩坑点:询问gbt的时候会提示使用nginx的with-http_gunzip_module模块,设置gunzip on;来自动解压,但是尝试多次后都无法成功。有成功的可以分享下经验哈。

翻看了一些资料,个人理解是 其实with-http_gunzip_module模块是帮前端进行解压的,比如nginx location代理接口进行了gz数据压缩,代理一层的对外接口就可以自动解压了。另外下图资料也说明了假如正向解压有可能遭受网络工具,消耗系统资源

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com