Nginx content_by_lua_block удаляет тело запроса? - PullRequest
0 голосов
/ 14 мая 2018

Я хотел внести некоторые изменения в существующую конфигурацию 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 фактически принимает запрос JSON в POST. Когда я отправляю запрос после добавления блока lua, я получаю сообщение об ошибке «Неверный JSON: пустая строка», но оно успешно записывает тело запроса в файл.

Я думаю, что этот блок lua ​​удаляет тело запроса после записи его в файл. Я только хочу, чтобы блок местоположения работал как обычно, но в дополнение к записи тела запроса в файл.

...