hi,
lua 模块中,可以直接使用 ngx.say/ngx.print/ngx.flush 来进行
到客户端内容的输出,但跟踪代码以及实际测试时发现,
通过 ngx.say/ngx.print 发送的内容不支持 range 请求。
我想 如果自定义一个模块通过 lua 模块提供的 API 实现一个新函数,
类似这样:
ngx.allow_range(),代码实现:
static int
ngx_http_lua_allow_ranges(lua_State * L)
{
ngx_http_request_t *r;
r = ngx_http_lua_get_request(L);
if (r == NULL) {
return luaL_error(L, "no request object found");
}
r->allow_ranges = 1;
lua_pushboolean(L, 1);
return 1;
}
lua 代码里这样实现:
ngx.allow_range()
ngx.header["content-length"] = 5 --- content-length 头部需要会设定
ngx.print("12345")
测试是ok,但不知道这样做是不是会带来其他兼容性问题?