nginx不支持if else 多重判断,需要用另一种方法来解决如下例:
location /api/opertree/ {
proxy_next_upstream error timeout invalid_header;
proxy_pass_header server;
proxy_http_version 1.1;
proxy_set_header Connection "";
set $flag 0;
if ($request_uri ~* "/api/XXX/onenode") {
set $flag "${flag}1";
}
if ($request_uri ~* "(uid=[0-9]*[5-9]\&)|((uid=[0-9]*[5-9]$))") {
set $flag "${flag}2";
}
if ($request_uri ~* "uid=((XXXX|XXXX)&)|((XXXX3|XXX3)$)") {
set $flag "${flag}3";
}
if ($flag ~* "01(2|3)")
{
proxy_pass http://commendfe/api/XXXX/list?$args;
break;
}
proxy_pass http://opertree;
}
转载于:https://blog.51cto.com/chenwenming/1434583