2.5. NGINX를 HTTP 로드 밸런서로 구성
NGINX 역방향 프록시 기능을 사용하여 트래픽을 로드 밸런싱할 수 있습니다. 이 절차에서는 NGINX를 활성 연결 수가 가장 적은 다른 서버에 요청을 보내는 HTTP 로드 밸런서 장치로 구성하는 방법을 설명합니다. 두 서버를 모두 사용할 수 없는 경우 절차에서는 폴백 이유로 세 번째 호스트도 정의합니다.
사전 요구 사항
- NGINX는 NGINX 설치 및 준비에 설명된 대로 설치됩니다.
절차
/etc/nginx/nginx.conf파일을 편집하고 다음 설정을 추가합니다.http { upstream backend { least_conn; server server1.example.com; server server2.example.com; server server3.example.com backup; } server { location / { proxy_pass http://backend; } } }backend라는 호스트 그룹의least_conn지시문은 활성 연결 수가 가장 적은 호스트에 따라 NGINX가server1.example.com또는server2.example.com에 요청을 보냅니다. NGINX에서는 다른 두 호스트를 사용할 수 없는 경우에만server3.example.com을 백업으로 사용합니다.proxy_pass지시문을http://backend로 설정하면 NGINX는 역방향 프록시 역할을 하며backend호스트 그룹을 사용하여 이 그룹의 설정에 따라 요청을 분산합니다.least_conn로드 밸런싱 방법 대신 다음을 지정할 수 있습니다.- 라운드 로빈을 사용하고 서버 간에 요청을 균등하게 배포하는 방법은 없습니다.
-
ip_hash는 IPv4 주소의 처음 세 옥텟 또는 클라이언트의 전체 IPv6 주소에서 계산된 해시를 기반으로 한 클라이언트 주소에서 동일한 서버로 요청을 전송합니다. -
문자열, 변수 또는 둘 다 조합일 수 있는 사용자 정의 키를 기반으로 서버를 결정하는
hash입니다.consistent매개 변수는 사용자 정의 해시 키 값을 기반으로 NGINX가 모든 서버에 요청을 배포하도록 구성합니다. -
random은 무작위로 선택된 서버로 요청을 보냅니다.
nginx서비스를 다시 시작합니다.# systemctl restart nginx