4. 부하분산 전략
Nginx에서 제공하는 대표적인 부하분산 메커니즘은 다음과 같음
1. 라운드 로빈, Round-robin
Nginx에서 기본 옵션으로 설정된 부하분산 기법으로, 업스트림 풀에 지정된 서버의 순서에 따라 균일하게 요청을 분산
weight 옵션을 통해 서버 간 가중치 조절 가능
nginx.conf
upstream node_servers {
server localhost:3001 weight=1;
server localhost:3002 weight=2; # 3001보다 더 많은 요청을 처리
}가중치는 가중치 평균의 통계적 확률에 따라 계산됨
2. 리스트 커넥션, Least connection
Nginx와의 연결 횟수가 적은 서버를 먼저 활용하는 방식
nginx.conf
upstream node_servers {
least_conn; # 리스트 커넥션 알고리즘 적용
server localhost:3001
server localhost:3002
}3. 리스트 타임, Least time
Nginx+(유료 버전)에서만 활용 가능
리스트 커넥션 알고리즘과 마찬가지로 가장 적은 업스트림 서버로 요청을 전달하지만, 추가적으로 응답 시간이 가장 빠른 서버를 우선하여 전달하는 방식
nginx.conf
upstream node_servers {
least_time; # 리스트 타임 알고리즘 적용
server localhost:3001;
server localhost:3002;
}그 외 캐시가 있을 확률이 높은 서버로 요청을 전달하고 싶을 경우에는 제네릭 해시(hash),
Nginx가 랜덤으로 분산할 경우에는(random) 등의 알고리즘도 있음
Last updated on