NGINX 부하분산 (HTTP / TCP)

· NginxLoadBalancerLinux


NGINX 부하분산 참고 이미지

HTTP 부하분산

upstream 블록과 http 모듈로 HTTP 서버 간 부하 분산.

upstream backend {
  server 10.10.12.45:80 weight=1;
  server app.example.com:80 weight=2;
  server spare.example.com:80 backup;
}
server {
  location / {
    proxy_pass http://backend;
  }
}

TCP 부하분산

stream 모듈로 TCP 서버 간 부하 분산. (예: 읽기 전용 MySQL 복제본)

stream {
  upstream mysql_read {
    server read1.example.com:3306 weight=5;
    server read2.example.com:3306;
    server 10.10.12.34:3306 backup;
  }
  server {
    listen 3306;
    proxy_pass mysql_read;
  }
}

기본 설정 파일 경로인 conf.d는 http 블록에 포함되므로, stream 설정은 stream.conf.d 같은 별도 폴더를 만드는 게 좋다.

http 모듈이 HTTP 프로토콜을 완전히 이해하도록 설계된 반면, stream 모듈은 패킷 전달 경로 결정과 부하분산에 더 중점을 둔다.

TCP 부하분산 파트는 upstream이 중복되는 부분이 헷갈려서 이해가 조금 어렵게 느껴진다.


예전 블로그에 적었던 작업 기록을 옮겨온 글입니다.


← Blog 목록