nginx - Nginx content_by_lua_block 删除请求正文?
问题描述
我想对现有的 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 块在将请求正文写入文件后会删除它。我只希望该位置块像往常一样工作,但除了将请求正文写入文件之外。
解决方案
推荐阅读
- uwp-xaml - SelectedItem 的 C++ WinRT UWP XAML 数据绑定到 String / hstring 类型的属性无法编译
- css - 如何通过flex解决以下查询?
- maven - Maven 是否具有 Gradle 的“编译项目”等功能?
- jquery - Wordpress JQuery 将变量内容作为可点击链接发送到电子邮件正文
- javascript - padEnd() 在错误的地方加 0
- java - 在硒中选择下拉值的方法
- python - Openstack 图片上传
- android - 上传映射时混淆的 Firebase 屏幕类
- python - 如何在 python 中将 HH.MM.SS(对象类型)列转换为 HH:MM?
- java - 如何显示字符串中的PDF?