nginx使用ngx.req.get_body_data()获取不到请求体内容
Nginx中可以使用在lua块中使用ngx.req.get_body_data()获取http请求的消息体。
代码如下:
server {
listen 7070;
charset utf-8;
server_name localhost;
location ~/yxl/(.*)/(.*) {
content_by_lua_block {
local data = ngx.req.get_body_data()
ngx.say(data)
}
}
}
但默认情况下可能会得到一个nil的结果。这是因为之前nginx的定位是消息转发,而不是处理消息体。若需要获取消息体,需要在打开获取消息体的开关。增加一行代码:lua_need_request_body on;
代码如下:
server {
listen 7070;
charset utf-8;
server_name localhost;
lua_need_request_body on;
location ~/yxl/(.*)/(.*) {
content_by_lua_block {
local data = ngx.req.get_body_data()
ngx.say(data)
}
}
}
如此即可顺利获取消息体的内容。
但上述方法强制本模块读取消息体,因此不推荐使用,获取消息体推荐使用以下方法,在获取消息体代码附近,增加一句ngx.req.read_body(),代码如下:
server {
listen 7070;
charset utf-8;
server_name localhost;
location ~/yxl/(.*)/(.*) {
content_by_lua_block {
ngx.req.read_body()
local data = ngx.req.get_body_data()
ngx.say(data)
}
}
}
nginx使用ngx.req.get_body_data()获取不到请求体内容相关推荐
- java web获取请求体内容
Java Web中如何获取请求体内容呢? 我们知道请求方式分为两种:Get,Post Java代码 /*** * Compatible with GET and POST * * @param r ...
- nginx 因POST请求体内容过大导致500,设置 client_max_body_size,client_body_buffer_size
设置 client_max_body_size 和 client_body_buffer_size client_max_body_size 2000M;client_body_buffer_size ...
- Spring Cloud Gateway 之获取请求体的几种方式
一.直接在全局拦截器中获取 伪代码如下 private String resolveBodyFromRequest(ServerHttpRequest serverHttpRequest){Flux& ...
- nginx的 ngx.var ngx.ctx ngx.req
ngx.var 是获取 Nginx 的变量,需要经历字符串 hash.hash 表查找等过程 ngx.ctx 仅仅是一个 Lua table 而已,它的引用存放在 ngx_lua 的模块上下文(ctx ...
- nginx变量ngx.var
ngx.var 是获取 Nginx 的变量,类型是字符串或nil,需要经历字符串 hash.hash 表查找等过程. ngx.ctx 仅仅是一个 Lua table 而已,它的引用存放在 ngx_lu ...
- 顺风详解Nginx系列—Ngx中的变量
在计算机语言中,变量是用来存储和表示数据的,但不同的语言表示变量的方式不同,像java语言会把变量抽象成各种类型,并且每种类型都会用一个特殊的符号表示,比如表示一个整数需要这样: int age= 2 ...
- openresty获取nginx原始的请求头内容
ngx.say("ngx.req.raw_header : ", ngx.req.raw_header(), "<br/>")
- Nginx反向代理导致PHP获取不到正确的HTTP_HOST,SERVER_NAME,客户端IP的解决方法
Nginx反向代理导致PHP获取不到正确的HTTP_HOST,SERVER_NAME,客户端IP的解决方法 参考文章: (1)Nginx反向代理导致PHP获取不到正确的HTTP_HOST,SERVER ...
- nginx做负载CDN加速获取端真实ip
nginx做负载CDN加速获取端真实ip在不用cdn的情况下,nginx做负载获取真实ip时,nginx配置如下:Java代码 proxy_set_header Host $host; proxy_s ...
最新文章
- poj1625Censored!(AC自动机+dp)
- Python设计模式-备忘录模式
- 从员工出走仅剩 5 人,到一支打胜仗的铁军
- boost::statechart模块无效图表测试
- 浅析Java的“克隆”方法[zt]
- 自适应/响应式网页设计
- MapReduce-计数器
- 【实用】Putty常见错误汇总
- springboot 数据权限_13 个最火的 SpringBoot 实战开源项目推荐!总有一个适合你!...
- JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
- Provisioning Services 7.8 入门系列教程之九 手动更新虚拟磁盘
- 数据结构(C语言)基础入门
- 研究生毕业论文查重标准是什么
- 求多个数的最小公倍数或最大公约数
- Pycharm全局搜索关键字
- Android6.0运行时权限(危险权限列表)
- IOS-UIWebView字体控制
- kali升级操作系统
- 香港科技大学人工智能医疗课题组陈浩老师招收博士生/博士后
- 解决WARN: Establishing SSL connection without server‘s identity verification is not recommended警告问题~