일반적으로 사용되는 로드 밸런싱 솔루션은 다음과 같습니다.
1. 폴링
폴링은 Nginx 구성 파일의 순서에 따라 클라이언트의 웹 요청을 다른 백엔드 서버에 순서대로 배포하는 라운드 로빈입니다.
구성 예는 다음과 같습니다.
http{
upstream Sampleapp {
서버 <
서버 << ; 다른 DNS 항목 또는 IP 주소(포트는 선택 사항)>>;
}
....
서버{
수신 80;
...
위치 / {
proxy_pass http://sampleapp;
} }
}
2. 최소 연결
웹 요청은 연결 수가 가장 적은 서버로 전달됩니다.
구성 예는 다음과 같습니다.
http{
upstream Sampleapp {
최소_conn;
서버 <
서버 <<다른 DNS 항목 또는 IP 주소(포트는 선택 사항)>>;
}
....
서버{
Listen 80;
...
위치 / {
Proxy_pass http://sampleapp;
} }
}
3. IP 해시
위에서 언급한 두 가지 로드 밸런싱 솔루션에서는 동일한 웹 요청이 연속적으로 발생합니다. 클라이언트는 처리를 위해 다른 백엔드 서버에 배포되므로 세션이 관련되면 세션이 더 복잡해집니다. 일반적인 것은 데이터베이스 기반 세션 지속성입니다. 위의 문제를 극복하기 위해 IP 주소 해싱 기반의 로드 밸런싱 솔루션을 사용할 수 있습니다. 이 경우 동일한 클라이언트의 연속적인 웹 요청은 처리를 위해 동일한 서버로 배포됩니다.
구성 예는 다음과 같습니다.
http{
upstream Sampleapp {
ip_hash;
서버 <
서버 <<다른 DNS 항목 또는 IP 주소(포트는 선택 사항)>>;
}
....
서버{
Listen 80;
...
위치 / {
Proxy_pass http://sampleapp;
} }
}
4. 가중치 기반 로드 밸런싱
이런 방식으로 더 많은 요청을 하도록 Nginx를 구성할 수 있습니다. 자주 구성이 높은 백엔드 서버에 배포하고 구성이 낮은 서버에는 상대적으로 적은 요청을 배포합니다.
구성 예는 다음과 같습니다.
http{
upstream Sampleapp {
서버 <
}
....
서버{
Listen 80;
...
location / {
Proxy_pass http://sampleapp;
}
}
위의 예에서는 서버 주소와 포트 뒤에 Weight=2를 구성합니다. 즉, 3개의 요청이 수신될 때마다 처음 2개의 요청은 첫 번째 서버에 배포되고 세 번째 요청은 두 번째 서버에 배포됩니다. 다른 구성은 폴링 구성과 동일합니다.