我需要使用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;
}
答案 0 :(得分:2)
根据official nginx documentation,请尝试使用:
if (($request_body ~* (.*)clientID#1(.*)) )
{
proxy_pass server1;
}
if (($request_body ~* (.*)clientID#2(.*)) ) {
proxy_pass server2;
}
}