Nginx 부하 균형 상세 설명
Nginx 의 부하 균형 정책
폴 링
부하 균형 전략 입 니 다.라운드 순서 에서 서버 가 다운 되면 자동 으로 서버 를 제거 합 니 다.일반적으로 백 엔 드 서버 의 성능 이 균일 한 경우 에 사용 된다.용도.
fail_timeout
설정 한 시간 동안 서버 가 응답 하지 않 으 면 서버 가 유효 하지 않 습 니 다. 기본 10s 입 니 다.
max_fails
연결 실패 횟수 허용, 기본 값 1
fail_time
서버 가 폴 링 대기 열 을 제거 하 는 시간, 기본 10s (제거 시간 내 에 폴 링 요청 을 받 지 않 음)
backup
이 서버 를 예비 서버 로 표시 합 니 다. 메 인 서버 가 다운 되면 메 인 서버 대신 요청 을 받 습 니 다.
down
이 서버 영구 정지 표시
upstream xx.com{
server 192.168.12.100:5000 fail_timeout=2s max_fails=1;
server 192.168.12.101:5000 fail_timeout=2s max_fails=1;
}
server {
listen 80;
server_name 192.168.12.101;
location / {
proxy_pass http://xx.com;
proxy_redirect default;
proxy_connect_timeout 2s;
}
.......
}
위 설정 에서 서버 한 대가 다운 되면 기다 리 는 시간 은 time = proxy 입 니 다.connect_timeout + fail_timeout * max_fails = 2 + 2 * 1 = 4s
무게
upstream xx.com{
server 192.168.12.100:5000 weight=1;
server 192.168.12.101:5000 weight=1;
server 192.168.12.101:5000 weight=3;
}
위의 그림 에서 설정 한 바 와 같이 가중치 가 1 과 3 이면 가중치 가 3 인 서버 가 문의 당 할 확률 은 1 의 3 배 입 니 다.
선택 할 때마다 백 엔 드 서버 를 옮 겨 다 니 며 서버 마다 가중치 연산 을 수행 합 니 다. currentweight = current_weight + effective_weight。(현재 가중치 + 유효 가중치) Total 의 값 을 현재 모든 서버 의 effective 로 설정 합 니 다.weight 와
매번 current 를 선 정 했 습 니 다.weight 값 이 가장 큰 서버 처리 요청 후 이 서버 의 currentweight = current_weight - total。(현재 가중치 - 총 가중치) 선 정 된 가중치 가 변 하지 않 습 니 다.
.계산 하기 편리 하도록 모든 서버 가 잘 사용 된다 고 가정 하면 effectiveweight = weight,total = weight1 + weight2 + weight3 = 7。 횟수
선택 한 가중치
결 과 를 선정 하 다
선 정 된 가중치
1
a=0+4=4,b=0+2=2,c=1
a
a=4-7=-3,b=2,c=1
2
a= -3+4=1,b=2+2=4,c=1+1=2
b
a=1,b=4-7=-3,c=2
3
5,-1,3
a
-2,-1,3
4
2,1,4
c
2 ,1,-3
5
6,3,-2
a
-1,3,-2
6
3,5,-1
b
3,-2,-1
7
7,0,0
a
0,0,0
최종 순 서 는 a, b, a, c, a, b, a 이다.기대 에 부합 하 다.
ip_hash
for (i = 0; i < 3; i++) {
hash = (hash * 113 + iphp->addr[i]) % 6271; //iphp->addr[i] ip i
}
계 산 된 Hash 값 에 따라 분배 합 니 다.
upstream xx.com{
ip_hash; #
server localhost:8080 weight=2;
server localhost:8081;
server localhost:8082;
server localhost:8083 max_fails=3 fail_timeout=20s;
}
least_conn
의 서버 처리 요청 을 선택 합 니 다.제3자 전략
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.