我想使用NGINX代理,对收到的HTTP请求的BODY内容中,满足指定规则的字符串进行替换,但奇怪的是,有些BODY的内容被替换了。有些BODY的内容没有被替换(似乎和BODY的大小有关系)我不太明白,为什么有的时候ngx.req.get_body_data() 会进入nil,(所有的消息都是有BODY的).这个原因是什么呢?或者说。有什么建议么?谢谢。
location /cascade/myspecial/ {
if ($request_method = POST)
{
access_by_lua_block
{
ngx.req.read_body()
local req = ngx.req.get_body_data()
if ( req == nil )
then
nTemp123 = 3 /* 为什么有的时候会进入这里 */
else
local newreq, n, err = ngx.re.gsub(req, "http://172.16.208.10", "http://172.16.230.196:3100/proxy_pass_special/172.16.208.10")
ngx.req.set_body_data(newreq)
end
}
}
proxy_pass http://172.16.130.2:8080/cascade/myspecial/;
}