1

我有一个 url '/gifts/' 下面是管理逻辑的 nginx.conf 文件的代码。

位置/礼物{
    default_type 文本/html;
    设置 $target '';
    content_by_lua '
        本地 redis = 需要“resty.redis”;
        本地红色 = redis:new()
        红色:set_timeout(1000) -- 1 秒
        本地正常,错误 = 红色:连接(“127.0.0.1”,6379)
        如果不行的话
            ngx.log(ngx.ERR, err, "Redis 连接失败")
            返回 ngx.exit(ngx.HTTP_SERVICE_UNAVAILABLE)
        结尾
        本地 ok1, err = red:set("Animal", "DOG")
        如果不行的话
            ngx.say("redis设置缓存失败", err)
        结尾
        本地资源, err = red:get("Animal")
        如果不是 res 那么
            ngx.say("失败", err)
        结尾
        ngx.say("动物", res)
';
}

它对我来说很好,/gifts/ 但是我有一个要求,比如我想将参数提取到这个登录中,就像 /gifts?key=name&value=Prashant 我想获取键和值的值一样。

4

2 回答 2

3

我使用 req.get_uri_args() 来获取在 url 中传递的所有参数。

本地参数 = ngx.req.get_uri_args()
于 2013-11-15T10:34:06.903 回答
3

看一下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
    ';
}
于 2015-08-24T11:59:20.327 回答