Nginx位置规则与控制器冲突

时间:2016-10-17 21:57:49

标签: nginx location rules

所以我有一个像这样的nginx规则位置:

    location  /foo {
            proxy_pass              http://<a-service-discovery-url>/foo/;
            proxy_redirect          default;
            proxy_set_header        X-Real-IP               $remote_addr;
            proxy_set_header        X-Forwarded-For         $proxy_add_x_forwarded_for;
}

然后我有一个控制器网址:

/foo-bar/bizz

奇怪的是,当我在/ foo-bar / bizz中击中控制器时,我再次被重定向到/ foo,这是不可取的。

我尝试了很多规则组合,导致了不良行为:

location /foo/

location = /foo

location = /foo/

使用〜定义的任何正则表达式都不起作用,因为proxy_pass包含位置规则中的world foo。

不希望使用尾部斜杠,因为用户必须明确地写它。

任何帮助将不胜感激。 感谢。

1 个答案:

答案 0 :(得分:0)

您是否尝试在将其添加到该位置时从proxy_pass网址中删除尾部斜杠。

location  /foo/ {
        proxy_pass              http://<a-service-discovery-url>/foo;
        proxy_redirect          default;
        proxy_set_header        X-Real-IP               $remote_addr;
        proxy_set_header        X-Forwarded-For         $proxy_add_x_forwarded_for;
}