nginx从post提取值并获取

时间:2019-01-18 11:31:57

标签: nginx post

我需要使用nginx制作一个反向代理,该反向代理根据客户端在其发布/获取的内部提供的特定ID来代理客户端:

clientid=<value from the clientid inside the post/get>

if clientid=XXX {
  ProxyPass server1
}
if clientid=YYY {
  ProxyPass server2
}

如何使用nginx实现呢?

使用@workaround注释,我得到如下信息:

location ~ ^/(api|newapi)/(v2/)?(xxxx|yyyy|zzzz) {
    echo_read_request_body;
    echo $request_body;
    if ($request_body ~* (.*)?clientid=2621(.*)?) {
      proxy_pass https://apiold;
    }
    proxy_pass https://apinew;
    include proxy.conf;
}

1 个答案:

答案 0 :(得分:2)

根据official nginx documentation,请尝试使用:

  if (($request_body ~* (.*)clientID#1(.*)) )

 {

    proxy_pass server1;

  }

if (($request_body ~* (.*)clientID#2(.*)) )  {

    proxy_pass server2;

  }

}