Nginx如何将参数传递给代理服务器?

时间:2013-12-23 18:12:04

标签: nginx

我有一个非常简单的问题,但我是nginx的新手,所以我可能会错过一些明显的解决方案。

所以我在nginx中定义了一个位置

/example/$id

我想将$ id传递给我的代理服务器上的参数化路由,如此

http://server.com/example/$id

这给了我关于nginx重载的未知id变量。所以我的问题是如何将参数从nginx传递到我的代理服务器。

1 个答案:

答案 0 :(得分:3)

假设所有其余部分都已正确设置,您可以使用正则表达式创建一个位置,并将捕获的变量传递给您的代理。

location ~ ^/example/(.+)$ {
  proxy_pass http://server.com/example/$1;
}

如果您的$id仅为数字,则正则表达式可能更具限制性

location ~ ^/example/(\d+)$ {
  proxy_pass http://server.com/example/$1;
}

请注意,您不能仅在不声明变量的情况下使用变量。声明$ id不是必需的,它会在正则表达式的括号内捕获并传递给$1