我的目标是检查 POST 请求的主体并将其与 nginx 上的一些键值对列表进行比较。在我的情况下,POST 请求将始终采用 JSON 格式。每个请求将包含这样的一key:value
对:"transaction":"12345"
或"transaction":"098765"
。意味着关键的“交易”将永远存在,价值会在一段时间内发生变化。我正在考虑使用lua-nginx-module来检查帖子正文,然后将其与假设中的键值进行比较memcached
。我还没有要显示的代码,但我会尽快更新一个问题。我想知道是否有人可以帮助我开始,或者展示它是如何完成的。
问问题
19260 次
3 回答
8
这就是我所做的:
server {
listen 80;
location /api/setdata {
lua_need_request_body on;
content_by_lua_file template/content.lua;
}
}
模板/内容.lua:
function processRequest()
ngx.req.read_body()
local request_body = ngx.req.get_body_data()
ngx.say(request_body)
end
于 2019-02-26T15:42:10.380 回答
5
根据您的需要,有多种方法可以检查 ngx_lua 中的 POST 请求正文:
全缓冲方式:使用ngx.req.read_body、ngx.req.get_body_data和ngx.req.get_body_file。
流式处理方式:使用ngx.req.socket分块读取和处理请求体流。
于 2013-09-27T21:56:40.433 回答
3
使用以下内容就足够了:
ngx.req.read_body()
local request_body = ngx.req.get_body_data()
也不需要使用该lua_need_request_body on;
指令,因为它与ngx.req.read_body()
.
于 2020-06-23T16:57:36.653 回答