Nginx 에는 Load Balancing 기능이 있다.

CentOS 8 환경에서 Nginx Load Balancing 기능을 설정해보자.

 

먼저 Nginx 의 Load Balancing 기법에 대해 알아보자.

 

[Load Balancing Methods]
Method 는 upstream { } 안에서 적용시킬 수 있다.
Round Robin (Default)
Least Connections : least_conn;
IP Hash : ip_hash;
Generic Hash : hash $request_uri consistent;
Least Time (Nginx+ Only) : least_time header
Random(Nginx+ ) : random two least_time=last_byte;

 

해당 글에서는 기본설정인 Round Robin 방식으로 예제를 진행합니다.

 

Load Balancing 기능은 기본적으로 upstream 에 등록 후 사용합니다.

 

http {
    upstream backend {

        [method];
        server backend1.example.com;
        server backend2.example.com;
        server 192.0.0.1 backup;
    }
    
    server {
        location / {
            proxy_pass http://backend;
        }
    }
}

 

저번 포스팅에서 ssl 설정을 마쳤기 때문에 ssl 설정에서 Load Balancing 설정을 잡아줍시다.

저는 flask 를 5000, 5001 번으로 실행 후 Load Balancing 을 테스트 해보겠습니다.

 

 

위에서 등록한 upstream 은 server 의 location 에서 사용.

 

변경된 설정을 저장해주시고.

Nginx 에 적용시켜줍시다.

$ sudo systemctl restart nginx

 

사용중인 서버라면 중단없이 적용되어야 겠죠?

$ service nginx reload

 

 

확인해봅시다.

 

flask 를 두개 띄워줬구요.

 

접속시 app1 page 가 뜨고.

 

재접속 시 app2 page 가 뜨는걸 확인할 수 있습니다.

 

flask 로그에서도 확인!

 

삽질을 끝내고 정리해보니 간단하네요.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기