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
了,为什么没有生效呢?