Nginx 로드 밸런싱 설정 방법

Nginx 로드 밸런싱 설정 방법

2022-06-01 last update

6 minutes reading Nginx Server Optimization

로드 밸런싱 정보


부하 균형은 여러 가지 기능이 강한 가상 전용 서버 주위에 전송 유량을 분포하는 유용한 메커니즘이다.처리 메커니즘을 여러 대의 기계에 분배함으로써 응용 프로그램에 군더더기를 제공하여 용착성과 안정성을 확보했다.로드 밸런싱에 사용되는 루프 알고리즘은 방문자를 IP 그룹 중 하나로 전송합니다.가장 기본적인 단계에서 순환(Round-Robin)은 서버 부하를 분배할 수 있고 서버 응답 시간과 방문자의 지리적 영역 등 더 미세한 요소를 고려할 필요가 없다.

설치 프로그램


이 강좌의 단계는 VPS에 루트 권한을 부여해야 합니다.Users Tutorial 에서 설정 방법을 볼 수 있습니다.
nginx 로드 밸런싱을 설정하기 전에 VPS에 nginx를 설치해야 합니다.apt get을 사용하여 빠르게 설치할 수 있습니다.
sudo apt get 설치nginx

업스트림 모듈


순환 부하 평형기를 구축하기 위해서는nginx 상류 모듈을 사용해야 합니다.우리는nginx 설정에 설정을 통합할 것입니다.
웹 사이트 구성을 계속하고 엽니다. (예에서 일반적인 기본 가상 호스트만 사용합니다.)
sudo nano/etc/nginx/사용 가능한 사이트/기본
우리는 부하 균형 설정을 파일에 추가해야 한다.
우선 다음과 같은 업스트림 모듈을 포함해야 합니다.
업스트림 백엔드
서버 백엔드 1.인스턴스일반 도메인 이름 형식;
서버 백엔드 2.인스턴스일반 도메인 이름 형식;
서버 백엔드 3.인스턴스일반 도메인 이름 형식;
}
그런 다음 구성에서 이 모듈을 참조해야 합니다.
서버
위치/{
proxy\u 통행증http://backend;
}
}
nginx 재부팅:
sudo 서비스nginx 리셋
모든 가상 전용 서버를 가지고 있다면, 부하 평형기가 방문자를 링크된 서버에 고르게 분배하기 시작할 것입니다.

명령


이전 절에서는 여러 가상 서버에 부하를 균등하게 분배하는 방법을 소개했다.그러나 이것은 데이터를 처리하는 가장 효과적인 방식이 아닐 수도 있다. 원인은 매우 많다.우리는 몇 가지 지령을 사용하여 사이트 방문자를 더욱 효과적으로 지도할 수 있다.

중량


사용자를 서버에 더욱 정확하게 분배하기 시작하는 방법 중 하나는 특정한 권한을 특정한 기계에 재분배하는 것이다.Nginx는 각 서버의 트래픽 비율을 지정하는 숫자를 지정할 수 있습니다.
서버 권한이 있는 로드 밸런싱 설정은 다음과 같습니다.
업스트림 백엔드
서버 백엔드 1.인스턴스com 무게 = 1;
서버 백엔드 2.인스턴스com 무게 = 2;
서버 백엔드 3.인스턴스com 무게 = 4;
}
기본값은 1입니다.무게는 2이고 백엔드는 2입니다.예시는 백엔드 1보다 두 배의 데이터를 보내고 권한이 4인 백엔드 3은 백엔드 2보다 두 배의 데이터와 네 배의 백엔드 1보다 네 배의 데이터를 처리한다.

망치다


IP 해시는 서버가 IP 주소에 따라 클라이언트에게 응답할 수 있도록 하며, 서버가 종료되지 않는 한 방문자를 동일한 VP로 다시 보낼 수 있습니다.서버가 비활성 상태인 것을 알고 있으면 닫기로 표시해야 합니다.다운타임 서버로 라우팅해야 하는 모든 IP는 대기 IP로 지정됩니다.
다음 구성은 예제를 제공합니다.
업스트림 백엔드
ip\u 해시;
서버 백엔드 1.인스턴스일반 도메인 이름 형식;
서버 백엔드 2.인스턴스일반 도메인 이름 형식;
서버 백엔드 3.인스턴스com 닫기;
}

Max 실패


기본 순환 설정에 따라nginx는 서버가 응답하지 않아도 가상 전용 서버에 데이터를 계속 보낼 것입니다.Max fails는 응답하지 않는 서버가 설정된 시간 내에 작동하지 않도록 함으로써 이러한 상황을 자동으로 방지할 수 있습니다.
max FAILES와 관련된 두 가지 요소가 있습니다: max\U FAILES와 fall\U timeout.Max fails는 서버가 비활성으로 간주되기 전에 서버에 접속하는 데 실패한 최대 횟수입니다.
Fall\u timeout 서버가 작동하지 않는 시간을 지정합니다.시간이 만료되면 서버에 다시 액세스하려고 시도합니다.기본 시간 초과 값은 10초입니다.
예제 구성은 다음과 같습니다.
업스트림 백엔드
서버 백엔드 1.인스턴스com max\u fails=3 fail\u timeout=15s;
서버 백엔드 2.인스턴스com 무게 = 2;
서버 백엔드 3.인스턴스com 무게 = 4;

더 보기


본고는 간단한 순환 부하 균형을 간략하게 개술하였다.또한 서버를 가속화하고 최적화하는 다른 방법도 있습니다.
  • How to Configure Nginx as a Front End Proxy for Apache
  • How to Install and Configure Varnish with Apache on Ubuntu 12.04
  • How to Install and Use Memcache on Ubuntu 12.04
  • 저자: Etel Sverdlov