安装lua_zlib让OpenResy可以接收gzip请求

1、下载和安装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
make
cp zlib.so /usr/local/openresty/lualib/zlib.so

注:安装lua_zlib需要lua或luajit的支持,所以在cmake时需要指定lua的路径。

2、使用lua_zlib来接收gzip请求 

local zlib = require "zlib"
local encoding = ngx.req.get_headers()["Content-Encoding"]
ngx.req.read_body();
if encoding == "gzip" then
    local body = ngx.req.get_body_data()
    if body then
        local stream = zlib.inflate()
        ngx.req.set_body_data(stream(body))
    end
end
时间: 2024-11-08 23:05:35

安装lua_zlib让OpenResy可以接收gzip请求的相关文章

.ashx接收http请求数据是一边执行一边接收吗

问题描述 我在跟踪性能时,发现.ashx处理程序中的PR方法里,从context.RequestForm表单里取数据,竟然消耗了11秒时间.所以我有这么一个疑问:rp方法接收http请求数据时,是不是http数据传输了多少,就执行一句读取RequestForm中的对应的数据.等到最后表单数据全部传完了,就可以执行到最后一行解析RequestForm中的数据.而不是等http表单数据全部传输完了,才开始执行ProcessRequest方法?代码如下:publicvoidProcessRequest

广电总局:个人不得安装和使用卫星地面接收设施

中新网9月15日电国家广电总局新闻发言人朱虹日前就中国广播影视方面的一些规定和要求答记者问.随着高清电视和机顶盒的普及,解码器和卫星节目接收器成了观众们比较关注的话题,在回答对于解码器和卫星节目接收器的销售和设备运营是否有限定时,朱虹肯定地说,中国现已出台一系列规定对其进行规范,从而严格管理. 朱虹说,为加强对卫星节目接收设施的管理,中国制定了<卫星电视广播地面接收设施管理规定>.<卫星电视广播地面接收设施安装服务暂行办法>,其中对解码器.接收器的销售和运营作出了明确规定.中国对卫

webservice iis-IIS接收并发请求时出现错误

问题描述 IIS接收并发请求时出现错误 我把一个webservcie发布到了IIS上,然后写了测试程序,用for语句并发了20个请求,出现下面的错误An unhandled win32 exception occurred in w3wp.exe, 出现这个错误后,无论怎么改for语句中的循环并发的次数,都会出现这个错误,更奇怪的是,如果先调试从只并发一次开始,然后调试时候逐渐增加并发进程的个数,就会没有问题.我对IIS管理不太了解,不知道是什么原因啊,有没有人能够解释一下呢?

一个发送xml远程请求和接收xml请求结果并置入DataSet的方法

xml|请求 /// <summary>  /// 返回查询结果  /// </summary>  /// <param name="RequestString">请求的字符串</param>  /// <param name="WriteText">是否打印出表格</param>  /// <returns></returns>  public static Syste

关于openfire接收HTTP请求的问题

问题描述 小弟现在要实现的功能是要求openfire可以接受HTTP请求,也就是第3方通过输入http://lsea.88.org:9090/pay.do这种格式的URL就执行我自己写的servlet或JSp,内置web容器为JETTY,不知道该如何配置,求高人指点! 解决方案 解决方案二:坐等高手,还有楼主分似乎给少了

在 RHEL/CentOS 上为Web服务器架设 “XR”(Crossroads) 负载均衡器

Crossroads 是一个独立的服务,它是一个用于Linux和TCP服务的开源负载均衡和故障转移实用程序.它可用于HTTP,HTTPS,SSH,SMTP 和 DNS 等,它也是一个多线程的工具,在提供负载均衡服务时,它可以只使用一块内存空间以此来提高性能. 首先来看看 XR 是如何工作的.我们可以将 XR 放到网络客户端和服务器之间,它可以将客户端的请求分配到服务器上以平衡负载. 如果一台服务器宕机,XR 会转发客户端请求到另一个服务器,所以客户感觉不到停顿.看看下面的图来了解什么样的情况下,

Python中使用socket发送HTTP请求数据接收不完整问题解决方法_python

由于工作的需求,需要用python做一个类似网络爬虫的采集器.虽然Python的urllib模块提供更加方便简洁操作,但是涉及到一些底层的需求,如手动设定User-Agent,Referer等,所以选择了直接用socket进行设计.当然,这样的话,需要对HTTP协议比较熟悉,HTTP协议这里就不做讲解了.整个python的代码如下: #!/usr/bin env python import socket host="www.baidu.com" se=socket.socket(soc

ASP.NET Core真实管道详解[2]:Server是如何完成针对请求的监听、接收与响应的【上】

Server是ASP .NET Core管道的第一个节点,负责完整请求的监听和接收,最终对请求的响应同样也由它完成.Server是我们对所有实现了IServer接口的所有类型以及对应对象的统称,如下面的代码片段所示,这个接口具有一个只读属性Features返回描述自身特性集合的FeatureCollection对象,另一个Start方法用于启动服务器. 1: public interface IServer : IDisposable 2: { 3: IFeatureCollection Fea

Ajax发送和接收请求_AJAX相关

首先Ajax的不刷新页面提交数据,现在应用非常广泛,废话不多说马上进主题!! 基本上浏览器能接收的信息,Ajax都可以接收,ex:字符串,html标签,css标签,xml格式内容,json格式内容等等..... <script> // IE浏览器 if(ActiveXObject){ // 微软目前AJAX最新版本 var ajax = new ActiveXObject("Msxm12.XMLHTTP.6.0"); }else{ // 主流浏览器 var ajax = n