location /var {
set $c 3;
#处理业务
content_by_lua_block {
local a = tonumber(ngx.var.arg_a) or 0
local b = tonumber(ngx.var.arg_b) or 0
local c = tonumber(ngx.var.c) or 0
ngx.say("sum:", a + b + c )
}
}
---------------test.lua---------------
local headers = ngx.req.get_headers()
ngx.say("============headers begin===============", "<br/>")
ngx.say("Host : ", headers["Host"], "<br/>")
ngx.say("headers['user-agent'] : ", headers["user-agent"], "<br/>")
ngx.say("headers.user_agent : ", headers.user_agent, "<br/>")
ngx.say("-------------遍历headers-----------", "<br/>")
for k,v in pairs(headers) do
if type(v) == "table" then
ngx.say(k, " : ", table.concat(v, ","), "<br/>")
else
ngx.say(k, " : ", v, "<br/>")
end
end
ngx.say("===========headers end============", "<br/>")
ngx.say("<br/>")
---------------test.lua---------------
--get请求uri参数
ngx.say("===========uri get args begin==================", "<br/>")
local uri_args = ngx.req.get_uri_args()
for k, v in pairs(uri_args) do
if type(v) == "table" then
ngx.say(k, " : ", table.concat(v, ", "), "<br/>")
else
ngx.say(k, ": ", v, "<br/>")
end
end
ngx.say("===========uri get args end==================", "<br/>")
--post请求参数
ngx.req.read_body()
ngx.say("=================post args begin====================", "<br/>")
local post_args = ngx.req.get_post_args()
for k, v in pairs(post_args) do
if type(v) == "table" then
ngx.say(k, " : ", table.concat(v, ", "), "<br/>")
else
ngx.say(k, ": ", v, "<br/>")
end
end
ngx.say("================post args end=====================", "<br/>")
-------test.lua
--未经解码的请求uri
local request_uri = ngx.var.request_uri;
ngx.say("request_uri : ", request_uri, "<br/>");
--编码
local escape_uri = ngx.escape_uri(request_uri)
ngx.say("escape_uri : ", escape_uri, "<br/>");
--解码
ngx.say("decode request_uri : ", ngx.unescape_uri(escape_uri), "<br/>");
--参数编码
local request_uri = ngx.var.request_uri;
local question_pos, _ = string.find(request_uri, '?')
if question_pos>0 then
local uri = string.sub(request_uri, 1, question_pos-1)
ngx.say("uri sub=",string.sub(request_uri, question_pos+1),"<br/>");
--对字符串进行解码
local args = ngx.decode_args(string.sub(request_uri, question_pos+1))
for k,v in pairs(args) do
ngx.say("k=",k,",v=", v, "<br/>");
end
if args and args.userId then
args.userId = args.userId + 10000
ngx.say("args+10000 : ", uri .. '?' .. ngx.encode_args(args), "<br/>");
end
end
local m, err = ngx.re.match("hello, 1234", "[0-9]+")
if m then
ngx.say(m[0])
else
if err then
ngx.log(ngx.ERR, "error: ", err)
return
end
ngx.say("match not found")
end
local m, err = ngx.re.match("hello, 1234", "([0-9])[0-9]+")
ngx.say(m[0],"<br/>")
ngx.say(m[1])