O pequeno exemplo está trabalhando para mim com o nginx 1.10.x no Ubuntu 16.04 com nginx-extras (contém lua). Ele não respeita os argumentos de consulta da solicitação, para mesclá-los com o corpo da postagem.
server {
...
server_name ...;
client_max_body_size 4k; # prevent too long post bodies
location / {
if ($request_method = POST ) {
access_by_lua '
ngx.req.read_body()
local data = ngx.req.get_body_data()
ngx.req.set_uri_args(data)
';
}
proxy_pass http://yourupstreamdestination;
proxy_method GET; # change method
include /etc/nginx/proxy_params.inc; # include some params
}
}