nginx извлекает значение из поста и получает - PullRequest
0 голосов
/ 18 января 2019

Мне нужно создать обратный прокси-сервер, используя nginx, который прокси-клиенты в соответствии с определенным идентификатором, который они предоставляют внутри, они публикуют / получают:

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 голосов
/ 18 января 2019

Согласно официальной документации nginx попробуйте использовать:

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

 {

    proxy_pass server1;

  }

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

    proxy_pass server2;

  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...