3계층 아키텍처와 프록시를 사용한 로드밸런싱

sangwoo·2025년 6월 2일
0

3계층 아키텍처

웹의 아키텍처는 대표적으로 3계층 아키텍처를 사용한다.

기본적은 구조는 위의 그림과 같이 클라이언트(브라우저) -> 프론트 -> 백엔드 -> db 구조로 구성된다.

여기서 프론트, 백엔드, db의 서버를 실행하는 컴퓨터를 각각 하나씩 따로 사용할 수 있지만, 사용자의 요청이 많아지면 과부하를 막기 위해 각각 여러 대의 컴퓨터에 서버를 실행한다.

Haproxy 사용하여 분산 부하 적용하기

총 2대의 컴퓨터에 nginx 서버를 실행하고 브라우저의 요청을 proxy가 받아 2대의 nginx 서버에 적절하게 요청한다.

  • 사용한 프록시는 Haproxy

총 3개의 ubuntu 가상 머신 환경을 실행한다. 3개의 가상머신은 각각의 역할을 한다.

  1. Haproxy를 실행
  2. 첫번째 nginx 실행
  3. 두번째 nginx 실행

1. Haproxy 설치

1) 설치와 설정

  1. HAProxy 설치
apt install haproxy
  1. HAProxy 설정 파일을 열어 다음과 같이 작성
listen stats
    bind *:9000
    mode  http
    option dontlog-normal
    stats enable
    stats realm Haproxy\ Statistics
    stats uri /stats

간단하게 설명하면 HAProxy를 실행한 서버의 IP 주소:9000/stats를 브라우저에 입력하면 HAProxy 관리 페이지?로 접속됨

2. nginx 설치

2대의 컴퓨터에 동일하게 진행한다.

  1. nginx 설치
apt install nginx
  1. 2대의 컴퓨터를 구별하기 위해 웹 페이지 파일을 수정

test.html 페이지 생성

touch /var/www/html/test.html

vi를 사용하여 server01, server02 입력

  1. nginx 실행
systemctl restart nginx

HAProxy 서버를 통하여 nginx 접속

브라우저에 HAProxy를 실행한 컴퓨터의 IP 주소/test.html 입력

새로고침 연타하면 server01, server02가 번갈아 나오는 것을 볼 수 있다.

0개의 댓글