-
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 응답을 반환하여 차단한다.
반응형'DevOps' 카테고리의 다른 글
NGINX 5: 프로그래머빌리티 & 자동화 (0) 2023.03.18 NGINX 4: 콘텐츠 캐싱하기 (0) 2023.03.15 NGINX 2: 고성능으로 부하 분산하기 (2) 2023.03.11 NGINX 1: 주요 설정 파일 및 명령어 알아보기 (0) 2023.03.07 NGINX 0: Ubuntu에 NGINX 설치하기 (0) 2023.03.05