我有一个网址'/ gifts /'下面是nginx.conf文件的代码,它是管理逻辑。
location /gifts { default_type text/html; set $target ''; content_by_lua ' local redis = require "resty.redis"; local red = redis:new() red:set_timeout(1000) -- 1 sec local ok, err = red:connect("127.0.0.1", 6379) if not ok then ngx.log(ngx.ERR, err, "Redis failed to connect") return ngx.exit(ngx.HTTP_SERVICE_UNAVAILABLE) end local ok1, err = red:set("Animal", "DOG") if not ok then ngx.say("Failed to set cache in redis", err) end local res, err = red:get("Animal") if not res then ngx.say("Failure", err) end ngx.say("Animal", res) '; }
/gifts/
我的工作正常
但我有一个要求,比如我想在这个登录中获取参数
/gifts?key=name&value=Prashant
我想获取键值和值。
答案 0 :(得分:3)
我使用req.get_uri_args()来获取在url中传递的所有参数。
local args = ngx.req.get_uri_args()
答案 1 :(得分:2)
看看ngx.req.get_uri_args()
,这将返回一个包含所有当前请求URL查询参数的Lua表。
示例:
location = /test {
content_by_lua '
local args = ngx.req.get_uri_args()
for key, val in pairs(args) do
if type(val) == "table" then
ngx.say(key, ": ", table.concat(val, ", "))
else
ngx.say(key, ": ", val)
end
end
';
}