Nginx 에서 IF 문 구 는 수학 비교 기능 을 실현 합 니 다.

1905 단어
nginx 의 if 지원 =,! =논리 적 비 교 는 지원 되 지 않 지만 if 중 =, < = 비 교 는 지원 되 지 않 습 니 다. 이 예제 에 서 는 set - misc - nginx - module 을 사 용 했 습 니 다.
 
  
location = /test/ {
    default_type html;
    set_random $a 0 9;      #$a 0-9
    if ( $a <= 4 ){         #$a < 4
        echo 'a: $a is lte 4';
    }
    if ( $a >= 5 ){         #$a > 5
        echo 'a: $a is gte 5';
    }
}

위의 설정 은 nginx 를 시작 할 때 오류 가 발생 할 수 있 습 니 다.
설령 지지 하지 않 는 다 하 더 라 도, 작은 보완 방법 이 있 겠 는가?
 
  
location = /test/ {
    default_type html;
    set_random $a 0 9;     #$a 0-9
    if ( $a ~ [0-4] ){     #$a 0-4
        echo 'a: $a is lte 4';
    }
    if ( $a ~ [5-9] ){     #$a 5-9
        echo 'a: $a is gte 5';
    }
}

테스트 10 회:
 
  
a: 8 is gte 5
a: 9 is gte 5
a: 2 is lte 4
a: 1 is lte 4
a: 8 is gte 5
a: 0 is lte 4
a: 9 is gte 5
a: 1 is lte 4
a: 4 is lte 4
a: 5 is gte 5
...

첨부: NGINX 는 이런 표기 법 을 지지 하지 않 는 다 니...
 
  
location = /test/ {
    default_type html;
    set_random $a 0 9;     #$a 0-9
    set_random $b 0 9;     #$b 0-9
    set $ereg "[0-$b]";
    if ( $a ~ $ereg ){     #$a 0-$b
        echo 'a: $a is lte b: $b  ereg: $ereg';
    }
    if ( $a !~ $ereg ){     #$a 0-$b
        echo 'a: $a is gt b: $b  ereg: $ereg';
    }
}

큰 소 에 게 이 루어 달라 고...

좋은 웹페이지 즐겨찾기