05. split_clients로 A/B 테스트(트래픽 분배) 구성하기
구성도
핵심 정리
1) split_clients는 ‘비율 기반 라우팅’ 도구입니다
- A/B 테스트, 점진적 배포(카나리), 새 버전 검증 등에 활용됩니다.
- 중요한 포인트는 무작위 분배가 아니라, 키 기반(해시)으로 그룹이 결정된다는 점입니다.
2) “같은 사용자를 같은 그룹으로” 보내려면
- 단순히 IP만 키로 쓰면 NAT 환경에서 사용자들이 한 덩어리로 묶일 수 있습니다.
- 보통은 쿠키(예: 실험 그룹) 또는 사용자 식별 토큰을 키로 삼는 편이 안전합니다.
# 예: 70%는 upstream A, 30%는 upstream B
split_clients "${remote_addr}${http_user_agent}" $variant {
70% "A";
* "B";
}
map $variant $upstream_name {
default backend_a;
"B" backend_b;
}
location / {
proxy_pass http://$upstream_name;
}
운영 팁
- 실험 대상 URL(예: /, /api)만 제한적으로 분기하고, 나머지는 단일 경로로 유지하면 장애 범위를 줄일 수 있습니다.
- 로그에 $variant를 남겨두면, ‘어느 그룹에서 문제가 났는지’가 바로 보입니다.
참고 링크
'Tech Note > 서버-Nginx' 카테고리의 다른 글
| [실습] 07. Rate Limiting 실전 (0) | 2026.01.04 |
|---|---|
| [실습] 06. 설정 컨텍스트를 통한 http 블록 설정 (0) | 2026.01.04 |
| [실습] 04. NGINX 캐시 입문 (0) | 2026.01.04 |
| [실습] 03. NGINX 리버스 프록시로 Django 배포 (0) | 2026.01.04 |
| [실습] 02. 정적 파일·멀티 도메인·로컬 DNS 설정 (0) | 2026.01.04 |