ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • NGINX 3: 트래픽 관리하기
    DevOps 2023. 3. 12. 10:23
    반응형

     

    NGINX는 웹 트래픽 컨트롤러로도 분류된다.

    요청을 특정 비율로 분기하거나 사용자의 위치 정보를 활용해 흐름을 조절하고 요청 빈도, 연결 수, 대역폭 등을 제한해 트래픽을 제어하는 방법을 살펴본다.


    1. A / B 테스트

    A/B 테스트는 두 가지 이상의 버전을 비교하여 사용자의 반응을 비교하는 실험적인 마케팅 방법이다.

    NGINX는 사용자 요청을 다른 버전의 애플리케이션으로 분기할 수 있다.

     

    split_clients "${remote_addr}AAA" $variant {
    	20.0%	"backendv2";
    	*	"backendv1";
    }

    split_clients 지시자는 첫 번째 매개변수에 지정된 문자열을 활용해 해시를 생성하고, 지정된 비율에 따라 두 번째 매개변수에 지정된 변수에 값을 할당한다.

     

    세 번째 매개변수는 키-값 조합으로 구성된 객체로, 키는 분기 비율이고 값은 큰따옴표로 묶인 문자열이다.

     

    별포는 비율로 지정되지 않은 나머지 전체를 의하기 때문에 $variant 변수는 요청의 20%에 대해 backendv2가 할당되고 나머지 80%에 대해 backendv1이 할당된다.

     

    이렇게 NGINX로 수신된 트래픽은 $variant 변수를 사용해 두 개의 애플리케이션 서버 풀로 분기된다.


    2. 국가 단위 접근 차단하기

    NGINX는 비즈니스 요구사항이나 애플리케이션 요건에 따라 특정 국가의 사용자를 차단할 수 있다.

    load_module "/usr/lib64/nginx/modules/ngx_http_geoip_modile.so";
    
    http {
    	map $geoip_country_code $country_access {
    		"US"	0;
    		default	1;
    	}
    }

    map 지시자는 $country_access 변수에 1이나 0을 할당하는데, 사용자 IP 주소의 위치 정보가 미국(US)면 0을 그 외의 국가이면 1을 할당한다.

    server {
    	if ($country_access = '1') {
    		return 403;
    	}
    }

    server 블록에서 if 문을 사용하여 미국에서 온 요청이 아닐 경우 403 Forbidden 응답을 반환하여 차단한다.

     

    반응형
Designed by Tistory.