nginx 의 upstream 몇 가지 폴 링 방식

2382 단어
이전 글 에 서 는 nginx 를 사용 하여 부하 균형 을 설정 하 는 방법, nginx 가 역방향 대리 부하 균형 을 어떻게 실현 하 는 지 소개 했다.다음은 부하 균형 의 몇 가지 분배 방식 을 소개 한다.
4. 567917. upstream 의 기본 방식 은 클 라 이언 트 의 요청 이 시간 순서에 따라 백 엔 드 서버 에 돌아 가면 서 분 류 됩 니 다. 백 엔 드 서버 가 사용 되 지 않 으 면 자동 으로 제거 할 수 있 습 니 다.기본 적 인 것 은 모든 백 엔 드 서버 weight = 1, 즉 가중치 가 1 이 고 가중 폴 링 은 다음 에 소개 합 니 다
upstream backend {
    server www.a.com;
    server www.b.com;
    server www.c.com;
}

4. 567917. 가중 폴 링 폴 링 알고리즘 은 라운드 호출 방식 으로 서로 다른 서버 를 순서대로 예약 하 는 것 입 니 다.가중 폴 링 알고리즘 은 각 성능 의 서버 에 각자 의 가중치 를 추가 하여 서버 간 성능 이 다른 상황 을 해결 할 수 있 습 니 다. 해당 하 는 가중치 로 서버 의 처리 성능 을 표시 하고 가중치 의 높 고 낮 음 과 폴 링 방식 에 따라 각 서버 에 요청 합 니 다.가중치 가 큰 백 엔 드 서버 는 더 많은 요청 연결 을 처리 하고 가중치 가 같은 백 엔 드 서버 는 같 습 니 다
upstream bakend {
    server www.a.com;
    server www.b.com weight=2;
    server www.c.com weight=3;
}

위의 가중치 와 같이 a 서버 의 가중치 는 weight = 1 이 고 다른 두 개 는 각각 2, 3 이다.6 개의 연결 요청 이 있 으 면 a, b, c 세 서버 에 대응 하 는 연결 수 는 각각 1, 2, 3 이다.가중 폴 링 방식 은 모든 요청 이 사용 하 는 백 엔 드 시간 이 기본적으로 같 고 부하 상황 이 가장 좋다.HTTP 와 같은 짧 은 연결 서비스 에 자주 사용 된다.
  • ip_hash 방식 은 요청 한 원본 IP 주소 에 따라 해시 키 (Hash Key) 로 정적 으로 분 배 된 산 목록 에서 해당 하 는 서버 를 찾 습 니 다. 이 서버 가 사용 가능 하고 과부하 되 지 않 으 면 이 서버 에 요청 을 보 냅 니 다. 그렇지 않 으 면 비어 있 습 니 다.session 에서 서버 를 뛰 어 넘 을 수 없 는 문 제 를 해결 할 수 있 습 니 다
  • upstream backend{
        ip_hash;
        server www.a.com;
        server www.b.com;
        server www.c.com;
    }
    

    요청 한 원본 주 소 를 해시 연산 하고 백 엔 드 서버 의 가중치 와 결합 하여 일치 하 는 서버 에 요청 하면 같은 클 라 이언 트 IP 의 요청 을 특정한 서버 에 계속 전송 할 수 있 습 니 다.따라서 세 션 유지 가 지원 되 지 않 는 장면 에 서 는 ip 를 사용 할 수 있 습 니 다.hash 간단 한 세 션 유지.
    4. 567917. fair 방식 (제3자 플러그 인 을 설치 해 야 함) 은 백 엔 드 서버 의 응답 시간 에 따라 요청 을 분배 하고 응답 시간 이 짧 은 우선 분 배 를 해 야 합 니 다.그러나 이런 방식 을 채택 하려 면 제3자 플러그 인 이 필요 하 다
    upstream backend{
        server www.a.com;
        server www.b.com;
        server www.c.com;
        fair;
    }
    

    nginx 의 fair 모듈 의 추 가 는 이 글 을 참고 할 수 있 습 니 다. 상세 한 설치 절차 소개, Nginx 학습 의 부하 균형 fair 모듈 이 있 습 니 다.
  • url_hash 방식 (제3자 플러그 인 을 설치 해 야 합 니 다) 은 url 에 접근 한 hash 결과 에 따라 요청 을 할당 합 니 다. 모든 url 을 같은 백 엔 드 서버 로 지정 하고 백 엔 드 서버 가 캐 시 서버 일 때 유효 합 니 다
  • upstream backend{
        server www.a.com;
        server www.b.com;
        server www.c.com;
        hash $request_uri;
        hash_method crc32;
    }
    

    upstream 에 hash 문 구 를 추가 합 니 다. hashmethod 는 hash 알고리즘 을 사용 합 니 다.

    좋은 웹페이지 즐겨찾기