NGINX 配置文件是这样的:
server {
listen 8888 default_server;
server_name _;
resolver 127.0.0.11 ipv6=off;
set $original_uri "/test";
location /forward {
set $original_uri $uri;
access_by_lua_block {
ngx.req.read_body()
local forward_uri = "/forward_pass"
res = ngx.location.capture(
forward_uri,
{
args = ngx.var.args,
copy_all_vars = true,
}
)
}
}
location /forward_pass {
proxy_pass "http://proxy_to_address$original_uri;
}
}
当我在请求 http://127.0.0.1/forward 的时候,我发现 /forward_pass 这个 location 中获得到的 $original_uri 总是 /test (在 server 块中设置的值)而不是 /forward (这应该是从 location /forward 中获得的值)。
但是 ngx.location.capture 中我已经将 copy_all_vars 设置为 true 了,为什么没有生效呢?