이오이오이오
코딩하는헬린이
이오이오이오
전체 방문자
오늘
어제
  • 분류 전체보기 (39)
    • 기타 (2)
      • 잡다한 (2)
      • 헬스 (0)
    • 개발 (21)
      • Sql (3)
      • Java (2)
      • Spring (8)
      • OAuth (4)
      • node.js (1)
      • AWS (1)
      • Linux (2)
    • 이론 (11)
    • Dev Tool (1)
      • IntelliJ IDEA (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • db 성질
  • java
  • reactive streams
  • 니모닉
  • 블록체인
  • POW
  • 블록체인지갑
  • nft
  • pos
  • restfulapi
  • kakaologin
  • oauth
  • Spring Boot
  • bip
  • Ipfs
  • Spring
  • RESTful
  • blockchain
  • 카카오로그인
  • webflux
  • springboot
  • isolation level
  • 로이필링

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
이오이오이오

코딩하는헬린이

개발/Linux

[Linux] nginx upstream을 사용하여 로드밸런싱 처리

2021. 6. 20. 10:35
반응형

안녕하세요 코딩하는헬린이 입니다.

 

오늘은 제목과 같이 nginx로 로드밸런싱 처리 하는법에 대하여 알아보겠습니다.

 

환경은 ubuntu18,  nginx 가 설치 되어있다는 가정하 진행하겠습니다.

 

1.upstream 이란 ? 

분산처리 기능을 한다고 보시면 됩니다.

 

2. 왜 써야하나 ?

과도한 트래픽 방어 또는 한서버에 여러개의 플랫폼을 (테스트서버) 설정시 port 로 구분하여 지정하는 방법 등 있습니다.

 

# 설정

cd /etc/nginx/sites-enabled/

들어가보면 vim, vi 로 파일하나가 있는걸 수정하세요 

 

upstream test_proxy {     #test_proxy upstream name 이다 변경하여 사용하면 됩니다.

    #least_conn;            연결이 가장 작은 서버로 요청할시 설정 
    #least_time header;     평균 레이턴시와 연결을 기준으로 검사해서 로드가 적은 서버로 요청을 보낸다

    server web-01;    
    server web-02;
}
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    server_name proxy_test.com

    index index.html index.htm index.nginx-debian.html;

    location / {
        proxy_pass http://test_proxy;     #upstream name 기입하면 됩니다.
    }
}

 

 

한서버에서 upstream 여러개를 사용하는 경우엔  아래와 같이 분산처리를 하면됩니다.

 

upstream test_proxy1 {     #test_proxy upstream name 이다 변경하여 사용하면 됩니다.
    server web-01:3000;    #port 3000번 일때    
}
upstream test_proxy2 {     #test_proxy upstream name 이다 변경하여 사용하면 됩니다.
    server web-01:3001;    #port 3001번 일때    
}
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    server_name proxy_test1.com

    index index.html index.htm index.nginx-debian.html;

    location / {
        proxy_pass http://test_proxy1;     #upstream name 기입하면 됩니다.
    }
}
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    server_name proxy_test2.com

    index index.html index.htm index.nginx-debian.html;

    location / {
        proxy_pass http://test_proxy2;     #upstream name 기입하면 됩니다.
    }
}

 

이렇게 설정해주시면 됩니다.

 

nginx를 통하여 ssl 설정 하는 방법이 있지만 나중에 알아보도록 하겠습니다.

 

감사합니다.

 

반응형

'개발 > Linux' 카테고리의 다른 글

[Linux] Let's Encrypt 사용하여 SSL 발급  (0) 2021.06.21
    '개발/Linux' 카테고리의 다른 글
    • [Linux] Let's Encrypt 사용하여 SSL 발급
    이오이오이오
    이오이오이오

    티스토리툴바