Nginx+Lua重写POST的Body数据

本文介绍如何利用Nginx的OpenResty模块和Lua脚本,在反向代理前修改POST请求的Content-Type为application/x-www-form-urlencoded的数据。通过Vue的axios发起POST请求,Nginx配置中读取并修改POST body,添加额外字段。最终,请求经过Nginx代理后,后端接收到包含额外字段的请求。
摘要由CSDN通过智能技术生成

需求描述

Nginx在反向代理请求之前,对Post请求体的内容进行修改,添加额外的字段内容。这里POST请求的Content-Type的值为application/x-www-form-urlencoded。

实现

安装OpenResty,使用Lua扩展功能实现,具体代码如下,

location /serviceA {
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Credentials' 'true';
            add_header 'Access-Control-Allow-Methods' '*';
            rewrite_by_lua_block {
                local cjson = require "cjson"
                ngx.req.read_body()
                local args = ngx.req.get_post_args()
                ngx.log(ngx.DEBUG, cjson.encode(args))
                args['secret'] = "7W0XLF"
                ngx.log(ngx.DEBUG, cjson.encode(args))
                local data = {}
                for i, v in pairs(args) do
                    table.insert(data, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值