如何获取 url 参数并使用 nginx 传递给 proxy_pass
how to get url parameter and pass to proxy_pass using nginx
我需要从一个URL中获取参数,例如abc=MY_STRING:
https://my-address/test?abc=MY_STRING
而在反向代理(我的地址),配置如下:
location /test?(.*) {
proxy_pass http://local-server:1234/test?$args
}
但它不起作用。
我尝试了另一种配置:
location /test?(.*) {
proxy_pass http://local-server:1234/test?
}
但没用。
您不能将 URI 的查询字符串部分与 location
或 rewrite
语句匹配,因为它不是 normalized URI.
的一部分
但你不需要。 URI(包含查询字符串)将向上游传递
除非您使用 rewrite
或 try_files
语句重定向它。
例如:
location /test {
proxy_pass http://localhost:1234;
}
URI /test?abc=MY_STRING
将匹配位置并传递给 localhost:1234
完全相同。有关更多信息,请参阅 this document。
我需要从一个URL中获取参数,例如abc=MY_STRING:
https://my-address/test?abc=MY_STRING
而在反向代理(我的地址),配置如下:
location /test?(.*) {
proxy_pass http://local-server:1234/test?$args
}
但它不起作用。
我尝试了另一种配置:
location /test?(.*) {
proxy_pass http://local-server:1234/test?
}
但没用。
您不能将 URI 的查询字符串部分与 location
或 rewrite
语句匹配,因为它不是 normalized URI.
但你不需要。 URI(包含查询字符串)将向上游传递
除非您使用 rewrite
或 try_files
语句重定向它。
例如:
location /test {
proxy_pass http://localhost:1234;
}
URI /test?abc=MY_STRING
将匹配位置并传递给 localhost:1234
完全相同。有关更多信息,请参阅 this document。