Nginx 백 엔 드 서비스 부하 균형 설정

3413 단어
참고 글:https://www.cnblogs.com/lave/p/10477375.html
개념 소개
부하 균형 은 기 존의 네트워크 구 조 를 바탕 으로 저렴 하고 효과 적 이 며 투명 한 방법 으로 네트워크 설비 와 서버 의 대역 폭 을 확대 하고 스루풋 을 증가 하 며 네트워크 데이터 처리 능력 을 강화 하 며 네트워크 의 유연성 과 가용성 을 향상 시킨다.
설정 수정
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) 를 사용 합 니 다
  • ip_hash 는 backup 과 동시에 사용 할 수 없습니다

  • 이 전략 은 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;
    }
    

    메모: 이 부하 균형 정책 은 요청 처리 시간 이 길 고 짧 아서 서버 가 과부하 되 는 경우 에 적합 합 니 다.

    좋은 웹페이지 즐겨찾기