반응형
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 |