Nginx 구현 if 다 중 판단 설정 방법 예시

751 단어
nginx 설정 에 서 는 if 조건 의 논리 와 / 논리 또는 연산 이 지원 되 지 않 으 며, if 의 내장 문법 이 지원 되 지 않 습 니 다. 우 리 는 변수의 방식 으로 실현 할 수 있 습 니 다. 먼저 의사 코드 (즉 nginx 지원 되 지 않 음) 입 니 다. 여기에 쓰 는 것 은 이해 하기 위해 서 입 니 다.
 
  
if ($remote_addr ~ "^(12.34|56.78)" && $http_user_agent ~* "spider") {
    return 403;
}

다음은 같은 효 과 를 가 진 실제 사용 가능 한 설정 입 니 다.
 
  
set $flag 0;
if ($remote_addr ~ "^(12.34|56.78)") {
    set $flag "${flag}1";
}
if ($http_user_agent ~* "spider") {
    set $flag "${flag}2";
}
if ($flag = "012") {
    return 403;
}

좋은 웹페이지 즐겨찾기