我想对现有的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块在将其写入文件后删除了请求体。我只希望该位置块像往常一样工作,但除了将请求主体写入文件之外。