Nginx로 로드밸런싱을 해보자!

무지성개발자·2024년 1월 8일
0

로드밸런싱

로드벨런싱이란 부하 분산 등의 목적으로 여러대의 서버를 띄운 상황에서 어떤 서버로 접근하게 할지 결정하게 하는 작업인데, 이런 작업을 하는 머신을 로드밸런서라고 한다.

로드밸런서의 위치에 따라 L4, L7 로드밸런서로 나뉘고 요청을 분산시키는 기준은 라운드 로빈, 응답시간 기반 등이 있다.

Nginx를 로드밸런서로 사용해보자

서론

진행하고 있는 개인 프로젝트의 서버를 이중화하여 부하를 분산시켜 더 많은 트레픽을 견뎌보기위해 로드밸런싱을 이용하기로 하였고, 구성이 간편한 Nginx를 사용하기로 했다.

목표

라운드로빈 로드밸런싱 구성

환경

  • NCP
  • os : Centos7

방법

centos7 기준으로

vi /etc/nginx/conf.d/default.conf

으로 파일을 열고 아래와 같이 수정한다.

upstream appServers {
        server {server1}:{port};
        server {server2}:{port};
}

server {
    listen       80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        proxy_pass http://appServers;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    ...

아마 처음엔 upstream에 관한 부분이 없을 텐데 이 부분이 로드벨런싱할 서버들의 주소를 적으면 된다. NCP와 같이 클라우드환경에 구성할 땐 내부IP를 사용하면 된다.


profile
no-intelli 개발자 입니다. 그래도 intellij는 씁니다.

1개의 댓글

안녕하세요, 네이버 클라우드 플랫폼입니다.

네이버클라우드의 기술 콘텐츠 리워드 프로그램 '이달의 Nclouder(1월)' 도전자로 초대합니다 :)

네이버 클라우드 플랫폼 서비스와 관련된 모든 주제로 2/1(목) 23시까지 신청 가능합니다. (*1월 작성 콘텐츠 한정 신청 가능)

Ncloud 크레딧을 포함한 다양한 리워드가 준비되어 있으니 많은 관심 부탁드립니다!

자세한 내용은 아래 링크에서 확인부탁드립니다.
https://blog.naver.com/n_cloudplatform/223315900468

신청 링크
https://navercloud.typeform.com/to/lF8NUaCF

답글 달기