zycchen 发表于 2018-11-9 13:55:51

nginx if多重判断方法

  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=*\&)|((uid=*$))") {
  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;
  }

页: [1]
查看完整版本: nginx if多重判断方法