HI 请教下使用capture结合proxy_pass做请求转发时如何设置转发请求的url、header以及body的编码
场景是这样的:用openresty实现代理将前端请求转发到后端服务器,前端和openresty之间请求响应是utf-8编码,后端服务器处理请求使用的是GBK编码,所以在转发的时候需要将转发请求的参数和body转为GBK编码后再转发给后端。
想请问下使用 openresty 大概怎么实现转换编码这种功能?
-- 局部lua代码
ngx.req.set_header("Content-Type", "text/html; charset=gbk") -- 没有起作用,content还是utf-8编码
response = ngx.location.capture('/api/proxy_pass',
{
method = requestMethod,
ctx = ngx.ctx,
args = ngx.req.get_uri_args(),
body = content
})
-- 局部nginx conf
location /api/proxy_pass {
set $query_str "";
internal;
set_by_lua $proxy_forward_addr "return ngx.ctx.apiForwardUrl";
set_by_lua $query_str "return ngx.var.args";
proxy_pass $proxy_forward_addr?$query_str;
}