Nginx 백 엔 드 서비스 부하 균형 설정
개념 소개
부하 균형 은 기 존의 네트워크 구 조 를 바탕 으로 저렴 하고 효과 적 이 며 투명 한 방법 으로 네트워크 설비 와 서버 의 대역 폭 을 확대 하고 스루풋 을 증가 하 며 네트워크 데이터 처리 능력 을 강화 하 며 네트워크 의 유연성 과 가용성 을 향상 시킨다.
설정 수정
nginx 프로필 수정 (/ etc / nginx / conf. d / default. conf)
upstream balance {
# , ip ip, ,weight , , , , 。
server 192.168.31.112:8080 weight=1;
server 192.168.31.113:8080 weight=1;
server 192.168.31.114:8080 weight=1;
}
server {
#
listen 80;
# , ip
server_name 192.168.31.110 # nginx IP;
location / {
add_header X-Content-Type-Options nosniff;
proxy_set_header X-scheme $scheme;
# ip
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx-Proxy true;
proxy_hide_header X-Powered-By;
proxy_hide_header Vary;
# , upstream , http:// upstream
proxy_pass http://balance;
}
}
nginx 부하 균형 전략
nginx 의 부하 균형 전략 은 4 가지 가 있 습 니 다.
폴 링 (기본 값)
가장 기본 적 인 설정 방법 은 upstream 의 기본 정책 입 니 다. 모든 요청 은 시간 순서에 따라 백 엔 드 서버 에 배 치 됩 니 다.
구체 적 인 매개 변 수 는 다음 과 같 습 니 다.
매개 변수
묘사 하 다.
fail_timeout
maxfails 결합 사용
max_fails
fail 에 설정timeout 매개 변수 설정 시간 내 최대 실패 횟수 입 니 다. 이 시간 내 에 이 서버 에 대한 모든 요청 이 실 패 했 을 경우 이 서버 는 정지 로 여 겨 집 니 다.
fail_time
서버 는 정지 시간 으로 여 겨 지 며 기본 값 은 10s 입 니 다.
backup
이 서버 를 예비 서버 로 표시 합 니 다.홈 서버 가 멈 추 면 요청 이 여기에 전 송 됩 니 다.
down
태그 서버 가 영구적 으로 정지 되 었 습 니 다.
주의:
4. 567917. 폴 링 에서 서버 다운 이 떨 어 지면 자동 으로 이 서버 를 제거 합 니 다
4. 567917. 부족 한 설정 은 바로 폴 링 전략 이다
4. 567917. 이 정책 은 서버 설정 이 상당 하고 상태 가 없 으 며 짧 고 빠 른 서비스 에 적합 합 니 다
무게
폴 링 전략 을 바탕 으로 함락 될 확률 을 정 하 다.숫자 가 클 수록 권력 이 무겁다.예 를 들 면:
upstream foo {
server localhost:8001 weight=2;
server localhost:8002;
server localhost:8003 backup;
server localhost:8004 max_fails=3 fail_timeout=20s;
}
이 예 에서 weight 인 자 는 폴 링 확률 을 정 하 는 데 사 용 됩 니 다. weight 기본 값 은 1 입 니 다.weight 의 수 치 는 방문 할 확률 과 정비례 합 니 다.
ip_해시 IP 해시
부하 이퀄 라이저 는 클 라 이언 트 IP 주소 의 배분 방식 에 따라 같은 클 라 이언 트 의 요청 이 같은 서버 로 계속 보 내 도록 확보 할 수 있 습 니 다.이렇게 하면 모든 방문객 이 백 엔 드 서버 에 고정 적 으로 접근 할 수 있다.
upstream foo {
ip_hash;
server localhost:8001 weight=2;
server localhost:8002;
server localhost:8003;
server localhost:8004 max_fails=3 fail_timeout=20s;
}
주의:
nginx 버 전 1.3.1 이전 에는 iphash 에서 가중치 (weight) 를 사용 합 니 다
이 전략 은 session 와 같은 상태 서비스 에 적합 합 니 다
4. 567917. 서버 를 제거 해 야 할 때 수 동 으로 다운 해 야 합 니 다
least_conn 최소 연결
연결 수가 적은 백 엔 드 서버 에 요청 을 전송 합 니 다.폴 링 알고리즘 은 요청 을 각 백 엔 드 에 평균 적 으로 전달 하여 부하 가 대체적으로 같 도록 하 는 것 입 니 다.그러나 일부 요청 이 오래 걸 리 면 백 엔 드 부하 가 높 을 수 있다.이 경우 leastconn 이런 방식 은 더욱 좋 은 부하 균형 효 과 를 얻 을 수 있다.
upstream foo {
least_conn;
server localhost:8001 weight=2;
server localhost:8002;
server localhost:8003 backup;
server localhost:8004 max_fails=3 fail_timeout=20s;
}
메모: 이 부하 균형 정책 은 요청 처리 시간 이 길 고 짧 아서 서버 가 과부하 되 는 경우 에 적합 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.