반응형

HA(High Availability, 고가용성)

메인 서버가 돌아가지 않아도 다른 서버로 돌아가야한다. (서버 이중화)

HAProxy를 활용한 웹 서버 이중화실습

이 글은 실습 과정을 통해 HAProxy 기반의 로드 밸런싱을 다룹니다. 모든 민감한 정보는 변수 이름으로 대체되었습니다.


0W. 가상 머신 생성

HA 서버 1개와 Web 서버 2개를 구성할 가상 머신 3대를 생성합니다.

1. HA 서버 HAProxy 이중화 구성

1.1 관리자 로그인

sudo su - root

1.2 네트워크 설정

vi /etc/netplan/00-installer-config.yaml

다음 내용을 추가합니다.

network:
  renderer: networkd
  ethernets:
    <NETWORK_INTERFACE>:  # 네트워크 인터페이스 이름으로 대체
      addresses:
        - <IP_ADDRESS>/24  # HAProxy 서버 IP 주소
      nameservers:
        addresses: [8.8.8.8]
      routes:
        - to: default
          via: <GATEWAY_IP>  # 게이트웨이 IP 주소
  version: 2

1.3 설정 적용

netplan apply

1.4 패키지 업데이트

apt update

1.5 HAProxy 설치

apt install haproxy

1.6 HAProxy 설정

vi /etc/haproxy/haproxy.cfg

파일 맨 아래에 아래 내용을 추가합니다.

관리 페이지 설정:

listen stats
    bind *:<STATS_PORT>  # HAProxy 통계 페이지 포트 (예: 9000)
    mode http
    option dontlog-normal
    stats enable
    stats realm Haproxy\ Statistics
    stats uri /stats

로드 밸런싱 설정:

frontend webserver
  bind *:<HTTP_PORT>  # HTTP 포트 (예: 80)
  mode http
  default_backend nginx-server
  
backend nginx-server
  mode http
  balance roundrobin
  option httpchk GET /
  server nginx1 <WEB_SERVER_1_IP>:<HTTP_PORT> check
  server nginx2 <WEB_SERVER_2_IP>:<HTTP_PORT> check

1.7 설정 적용 및 실행 확인

systemctl restart haproxy systemctl status haproxy netstat -anlp | grep :<STATS\_PORT>

웹 브라우저에서 http://<HA_PROXY_IP>:<STATS_PORT>/stats로 접속하여 통계를 확인합니다.

 

1.8 web서버의 nginx에 example.html 파일 생성

cd /var/www/html
touch example.html
vi example.html

각 web서버 example.html파일의 내용은 다르게 작성합니다.

 

웹 브라우저에서 http://<HA_PROXY_IP>:<HTTP_PORT>/example.html로 접속하고 새로 고침을 누르며 내용을 통해 두개의 WEB 서버에 번갈아가며 접속되는지 확인합니다.

반응형

'개발 부트캠프 > SW공학' 카테고리의 다른 글

[자료구조] Heap 트리  (0) 2025.01.17
[자료구조] AVL 트리  (0) 2025.01.17
[자료구조] 이진 탐색 트리  (0) 2025.01.17
[자료구조] Tree  (0) 2025.01.17

+ Recent posts