如何在带有 proxy_pass 的 nginx 位置中使用正则表达式?

如何在带有 proxy_pass 的 nginx 位置中使用正则表达式?

我想做这样的事:

location ~ ^/authorize/(\w+)$ {        
    proxy_pass http://my.vm/auth;
    proxy_pass_request_body on;
    proxy_set_header MY_CUSTOM_HEADER $1;
    proxy_pass_request_headers on;
}

但是,我收到以下错误消息:

nginx: [emerg] "proxy_pass" cannot have URI part in
location given by regular expression, or inside named location,
or inside "if" statement, or inside "limit_except" block in
nginx.conf

任何帮助,将不胜感激。

提前致谢

答案1

错误消息是正确的,这不是一个有效的配置。我隐约记得读过一个解决方法,这些其他问题描述了它

Nginx 位置正则表达式不适用于代理传递

Nginx. 使用正则表达式进行重定向

通过 Google 也可以找到很多文章。如果上述解决方法不起作用,您就必须重新考虑您的方法。

相关内容