【问题标题】:Nginx put POST/GET request body to variableNginx 将 POST/GET 请求正文放入变量
【发布时间】:2017-04-04 00:17:14
【问题描述】:

我有一个具有单个位置的 openresty 服务器,我需要在其中向 redis 数据库发送 POST/GET 请求正文。

这是一个配置 sn-p:

map $request_method $query {
    "GET"           $request;
    "POST"          $request_body;
}

...

location /test {
    redis2_query rpush $key $query;
    redis2_pass redis6379:6379;
}

但是,如果它收到 POST 请求,$query 似乎是空的。

access_by_lua 'ngx.req.read_body()';

echo_read_request_body;

似乎没有帮助。提前感谢您的任何帮助。

【问题讨论】:

    标签: nginx lua openresty


    【解决方案1】:
    set $query "";
    
    rewrite_by_lua '
        local method = ngx.var.request_method
        if method == "POST" then
            ngx.req.read_body()
            local data = ngx.req.get_body_data()
            ngx.var.query = data.."&ng_ua="..ngx.var.http_user_agent.."&ng_ip="..ngx.var.remote_addr.."&ng_ip="..ngx.var.time_local
        elseif method == "GET" then
            local data = ngx.var.query_string
            ngx.var.query = data.."&ng_ua="..ngx.var.http_user_agent.."&ng_ip="..ngx.var.remote_addr.."&ng_ip="..ngx.var.time_local
        end
    ';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-24
      • 1970-01-01
      • 2014-05-12
      • 2022-10-26
      • 2016-01-13
      • 1970-01-01
      • 2019-10-04
      相关资源
      最近更新 更多