如何使用nginx获取url参数并传递给proxy_pass

时间:2018-11-24 03:42:46

标签: nginx nginx-reverse-proxy nginx-config

我需要从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?$1
}

但也不起作用。

1 个答案:

答案 0 :(得分:1)

您无法将URI的查询字符串部分与public int getCar(int marvel) { return marvel; } Map<String, Employee> employeeMap = new HashMap<>(); employeeMap.put("Nitish", new Employee("Nitish", 26)); employeeMap.put("Sh", new Employee("Sh", 2)); employeeMap.put("S", new Employee("S", 1)); System.out.println(employeeMap.get("Nitish").getName()); System.out.println(employeeMap.get("Nitish").getAge()); 语句匹配,因为它不是normalized URI的一部分。

但是您不需要。 URI(带有查询字符串)将在上游传递 除非您使用locationrewrite语句重定向它。

例如:

rewrite

URI try_files将与位置匹配,并以完全相同的方式传递到location /test { proxy_pass http://localhost:1234; } 。有关更多信息,请参见this document