Nginx content_by_lua_block删除请求正文?

时间:2018-05-14 07:26:42

标签: nginx post lua request openresty

我想对现有的nginx配置进行一些更改。我以前的配置是这样的:

    location /serviceprovider {

            proxy_pass http://localhost:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_redirect off;
    }

然后我添加了content_by_lua_block,如下所示:

 location /serviceprovider {

            proxy_pass http://localhost:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_redirect off;

            content_by_lua_block{
                    ngx.req.read_body()
                    body = ngx.req.get_body_data()
                    file = io.open("/etc/nginx/test", "w")
                    file:write(body)
                    file:close()
            }
    }

我的/ serviceprovider实际上接受POST中的JSON请求。当我在添加lua块后发送请求时,我收到错误消息"无效的JSON:空字符串",但它成功地将请求正文写入文件。

我认为这个lua块在将其写入文件后删除了请求体。我只希望该位置块像往常一样工作,但除了将请求主体写入文件之外。

0 个答案:

没有答案