Я хотел внести некоторые изменения в существующую конфигурацию 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 удаляет тело запроса после записи его в файл. Я только хочу, чтобы блок местоположения работал как обычно, но в дополнение к записи тела запроса в файл.