我有一个非常简单的问题,但我是nginx的新手,所以我可能会错过一些明显的解决方案。
所以我在nginx中定义了一个位置
/example/$id
我想将$ id传递给我的代理服务器上的参数化路由,如此
http://server.com/example/$id
这给了我关于nginx重载的未知id变量。所以我的问题是如何将参数从nginx传递到我的代理服务器。
答案 0 :(得分:3)
假设所有其余部分都已正确设置,您可以使用正则表达式创建一个位置,并将捕获的变量传递给您的代理。
location ~ ^/example/(.+)$ {
proxy_pass http://server.com/example/$1;
}
如果您的$id
仅为数字,则正则表达式可能更具限制性
location ~ ^/example/(\d+)$ {
proxy_pass http://server.com/example/$1;
}
请注意,您不能仅在不声明变量的情况下使用变量。声明$ id不是必需的,它会在正则表达式的括号内捕获并传递给$1